ImportError:没有名为'Queue'的模块

Ali*_*aki 56 python python-requests

我正在尝试导入requests模块,但是我得到了这个错误,我的python版本是在ubuntu 14.04上运行的3.4

>>> 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'
Run Code Online (Sandbox Code Playgroud)

Pac*_*ier 103

import queue在Python 3中是小写的 q.

更改Qq,它会被罚款.

(有关智能切换,请参阅/sf/answers/2078165701/中的代码 .)

  • 这与显式导入`Queue`的人有关,但是OP的回溯清楚地表明`requests`模块首先尝试'queue`,然后回到尝试`Queue`(使其版本完全如所描述的那样便携).你正在回答很多人遇到这个错误的问题,但根本不是OP的问题. (4认同)

小智 51

队列在多处理模块中,因此:

from multiprocessing import Queue
Run Code Online (Sandbox Code Playgroud)

  • `multiprocessing.Queue`是一个完全不同的类,具有*lot*更高的开销; 对于线程,你需要来自`queue`(Py3)/`Queue`(Py2)模块的*`Queue`.`requests`正在尝试从两个名称中获取它(因此它与版本无关); 失败表明一个完全不同的问题(正如OP在他们的回答中解释的那样). (3认同)

Ali*_*aki 27

我解决了问题,我的问题是我在同一目录中有名为queue.py的文件

  • 帮助过我.它很尴尬,但我已经创建了自己的自定义queue.py文件来学习队列.谢谢你的回答. (4认同)

GPr*_*hap 19

这是因为 Python 版本。在 Python 2.x 中,它是import Queue as queue; 相反,在 Python 3 中它是import queue. 如果您希望在这两种环境中使用它,您可以使用下面提到的内容here

try:
   import queue
except ImportError:
   import Queue as queue
Run Code Online (Sandbox Code Playgroud)