", 라인 1, in 파일 "/usr/local"/> ", 라인 1, in 파일 "/usr/local">

 >  기사  >  백엔드 개발  >  python2.7.6에서 amqp 모듈이 보고한 오류를 해결하는 방법은 무엇입니까?

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

零下一度
零下一度원래의
2017-06-30 13:37:021603검색

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

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

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

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

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.