python2.7.6에서 amqp 모듈이 보고한 오류를 해결하는 방법은 무엇입니까?

零下一度
풀어 주다: 2017-06-30 13:37:02
원래의
1657명이 탐색했습니다.

머신의 환경은 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(&#39;>I&#39;, pack(&#39;>HH&#39;, *_method_id))[0]] = \
로그인 후 복사

METHOD_NAME_MAP[unpack(u&#39;>I&#39;, pack(u&#39;>HH&#39;, *_method_id))[0]] = \
로그인 후 복사

전에는 유니코드로 바꿨거든요. github에서 이렇게 바뀌었거든요. , 별 생각 없이 복사했는데

사실 다음과 같이 바뀌었습니다. 문자열이 필요하니 그냥 하시면 되는데, 유니코드 때문에 잘 생각하지 않고 반복적으로 고생하시면 너무 우회하게 됩니다.

처음 오류가 났을 때 소스를 바꿔야 했어요. 파이썬 라이브러리에 있는 코드입니다. 술에 취해 마지못해 녹음했습니다.

위 내용은 python2.7.6에서 amqp 모듈이 보고한 오류를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿