"、行 1、<モジュール> ファイル "/usr/local"/> "、行 1、<モジュール> ファイル "/usr/local">

ホームページ >バックエンド開発 >Python チュートリアル >Python2.7.6のamqpモジュールによって報告されたエラーを解決するにはどうすればよいですか?

Python2.7.6のamqpモジュールによって報告されたエラーを解決するにはどうすればよいですか?

零下一度
零下一度オリジナル
2017-06-30 13:37:021681ブラウズ

マシンの環境は 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]] = \
前に Unicode に変更しました

METHOD_NAME_MAP[unpack(u&#39;>I&#39;, pack(u&#39;>HH&#39;, *_method_id))[0]] = \

これは github でどのように変更されているかです。 , 何も考えずコピーしてしまいました

実際は以下のように変更されていました 以上です:

METHOD_NAME_MAP[unpack(str(&#39;>I&#39;), pack(str(&#39;>HH&#39;), *_method_id))[0]] = \

もう一度 import amqp を使用するとエラーは出なくなります

振り返ってみると、エラーレポートには と明記されています。文字列が必要なのでそのまま実行しますが、よく考えずに何度も Unicode と格闘すると、遠回りしてしまいます。

初めてエラーが発生したときは、ソースを変更する必要がありました。 Pythonライブラリのコード、酔ってたので仕方なく記録しました

以上がPython2.7.6のamqpモジュールによって報告されたエラーを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。