マシンの環境は python2.7.6 です。
pip install を使用して amqp をインストールしました。正常にインストールされ、エラーは報告されませんでした。
インストールされている amqp のバージョンは 2.1.4 です。
Python では、 import amqp を使用します。そしてエラーは次のとおりです:
Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/lib/python2.7/site-packages/amqp/__init__.py", line 45, in <module> from .basic_message import Message # noqa File "/usr/local/lib/python2.7/site-packages/amqp/basic_message.py", line 29, in <module> from .serialization import GenericContent File "/usr/local/lib/python2.7/site-packages/amqp/serialization.py", line 31, in <module> from .exceptions import FrameSyntaxError File "/usr/local/lib/python2.7/site-packages/amqp/exceptions.py", line 298, in <module> _method_name TypeError: Struct() argument 1 must be string, not unicode
Baidu と Google には、Struct() の引数 1 は Unicode 関連のコンテンツではなく文字列である必要があります。もう少し役立つのは、このバージョンを見たときの github での議論です
。コードの
Yi Hulu Hua Ladle、対応する場所をコード化されていない形式に変更しました、つまり、文字列の前にu''を追加しても問題は解決しませんでした
何度も見直した後、最終的に考えました。先ほどエラーを報告したファイルを開いて、298 行目の _method_name より前の行を確認しました。
METHOD_NAME_MAP[unpack('>I', pack('>HH', *_method_id))[0]] = \
METHOD_NAME_MAP[unpack(u'>I', pack(u'>HH', *_method_id))[0]] = \
実際は以下のように変更されていました 以上です:
METHOD_NAME_MAP[unpack(str('>I'), pack(str('>HH'), *_method_id))[0]] = \
振り返ってみると、エラーレポートには と明記されています。文字列が必要なのでそのまま実行しますが、よく考えずに何度も Unicode と格闘すると、遠回りしてしまいます。
初めてエラーが発生したときは、ソースを変更する必要がありました。 Pythonライブラリのコード、酔ってたので仕方なく記録しました
以上がPython2.7.6のamqpモジュールによって報告されたエラーを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。