Die Umgebung der Maschine ist Python2.7.6;
Ich habe amqp mit pip install installiert. Es wurde normal installiert und es wurde kein Fehler gemeldet.
Die installierte Version von amqp ist 2.1. 4.
In Python lautet der Fehler bei Verwendung von import amqp wie folgt:
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 und Google haben einige Struct( ) Argument 1 muss eine Zeichenfolge sein, nicht Unicode-bezogen. Der Inhalt, etwas nützlich, ist die Diskussion auf Github
Als ich diese Version des Codes sah
Ich folgte dem Beispiel und änderte die entsprechenden Stellen in „Die uncodierte Form besteht darin, u“ vor der Zeichenfolge hinzuzufügen
hat das Problem nicht gelöst
Nach mehrmaliger Überprüfung habe ich endlich darüber nachgedacht und die geöffnet Datei, in der der Fehler früher gemeldet wurde, und habe mir Zeile 298 angesehen. Die Zeile vor _method_name lautet:
METHOD_NAME_MAP[unpack('>I', pack('>HH', *_method_id))[0]] = \
, die ich zuvor in Unicode
METHOD_NAME_MAP[unpack(u'>I', pack(u'>HH', *_method_id))[0]] = \
METHOD_NAME_MAP[unpack(str('>I'), pack(str('>HH'), *_method_id))[0]] = \
Das obige ist der detaillierte Inhalt vonWie kann der vom amqp-Modul unter Python2.7.6 gemeldete Fehler behoben werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!