머신의 환경은 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이 문자열이어야 하며 유니코드 관련 콘텐츠가 아니어야 합니다. 조금 더 유용한 것은 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]] = \
전에는 유니코드로 바꿨거든요. github에서 이렇게 바뀌었거든요. , 별 생각 없이 복사했는데
사실 다음과 같이 바뀌었습니다. 문자열이 필요하니 그냥 하시면 되는데, 유니코드 때문에 잘 생각하지 않고 반복적으로 고생하시면 너무 우회하게 됩니다.
위 내용은 python2.7.6에서 amqp 모듈이 보고한 오류를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!