복붙노트

[PYTHON] ImportError : 'Queue'라는 모듈이 없습니다.

PYTHON

ImportError : 'Queue'라는 모듈이 없습니다.

요청 모듈을 가져 오려고하는데이 오류가 있습니다. 내 비단뱀 버전은 3.4 우분투 14.04에서 실행됩니다

>>> import requests
Traceback (most recent call last):
  File "/usr/local/lib/python3.4/dist-packages/requests/packages/urllib3/connectionpool.py", line 10, in <module>
    from queue import LifoQueue, Empty, Full
ImportError: cannot import name 'LifoQueue'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.4/dist-packages/requests/__init__.py", line 58, in <module>
   from . import utils
  File "/usr/local/lib/python3.4/dist-packages/requests/utils.py", line 26, in <module>
    from .compat import parse_http_list as _parse_list_header
  File "/usr/local/lib/python3.4/dist-packages/requests/compat.py", line 7, in <module>
    from .packages import chardet
  File "/usr/local/lib/python3.4/dist-packages/requests/packages/__init__.py", line 3, in <module>
    from . import urllib3
  File "/usr/local/lib/python3.4/dist-packages/requests/packages/urllib3/__init__.py", line 10, in <module>
    from .connectionpool import (
  File "/usr/local/lib/python3.4/dist-packages/requests/packages/urllib3/connectionpool.py", line 12, in <module>
    from Queue import LifoQueue, Empty, Full
ImportError: No module named 'Queue'

해결법

  1. ==============================

    1.import queue는 Python 3에서 소문자 q입니다.

    import queue는 Python 3에서 소문자 q입니다.

    Q를 q로 변경하면 문제가되지 않습니다.

    스마트 스위칭을위한 코드는 https://stackoverflow.com/a/29688081/632951을 참조하십시오.

  2. ==============================

    2.대기열이 다중 처리 모듈에 있으므로 다음과 같습니다.

    대기열이 다중 처리 모듈에 있으므로 다음과 같습니다.

    from multiprocessing import Queue
    
  3. ==============================

    3.내 문제는 내가 동일한 디렉토리에 queue.py라는 파일이 있었는지 문제를 해결

    내 문제는 내가 동일한 디렉토리에 queue.py라는 파일이 있었는지 문제를 해결

  4. ==============================

    4.내 경우에는 다음과 같아야합니다.

    내 경우에는 다음과 같아야합니다.

    다중 처리 가져 오기에서 가져 오기 JoinableQueue

    python2 이후 Queue는 .task_done ()과 같은 메소드를 가지고 있지만 python3 다중 처리에서는이 메소드가 없으며 다중 처리 .JoinableQueue가 있습니다.

  5. ==============================

    5.나도 "요청"모듈에이 문제가있었습니다. 그런 다음 "urllib3"모듈을 수동으로 편집해야한다는 것을 알았습니다.

    나도 "요청"모듈에이 문제가있었습니다. 그런 다음 "urllib3"모듈을 수동으로 편집해야한다는 것을 알았습니다.

    C : \ Users \ Hp \ AppData \ Local \ Programs \ Python \ Python35 \ Lib \ site-packages \ urllib3 \ packages를 열어서 six.py의 첫 번째 줄에 다음 문장을 입력하십시오 :

    from multiprocessing import Queue as queue
    

    그것을 저장하는 것을 잊지 마라, 그러면 끝났어!

  6. ==============================

    6.Queuelib은 Python Package Index (PyPI) 또는 소스를 통해 설치해야합니다.

    Queuelib은 Python Package Index (PyPI) 또는 소스를 통해 설치해야합니다.

    pip를 사용하여 설치하려면 : -

    $ pip install queuelib
    

    easy_install을 사용하여 설치하려면 다음을 수행하십시오. -

    $ easy_install queuelib
    

    소스 tarball을 다운로드 한 경우 다음을 실행하여 설치할 수 있습니다 (root로).

    python setup.py install
    
  7. from https://stackoverflow.com/questions/33432426/importerror-no-module-named-queue by cc-by-sa and MIT license