ImportError:没有名为' Queue'

时间:2015-10-30 09:17:20

标签: 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'

8 个答案:

答案 0 :(得分:86)

Python 3中的

import queue 小写 q

Q更改为q即可。

(请参阅https://stackoverflow.com/a/29688081/632951中的代码进行智能切换。)

答案 1 :(得分:50)

队列在多处理模块中:

from multiprocessing import Queue

答案 2 :(得分:23)

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

答案 3 :(得分:1)

在我的情况下应该是:

from multiprocessing import JoinableQueue

因为在python2中,Queue有像.task_done()这样的方法,但在python3 multiprocessing.Queue中没有这种方法,multiprocessing.JoinableQueue也没有。

答案 4 :(得分:0)

我遇到了同样的问题,并学习了队列模块定义了类和异常,这些类和异常定义了公共方法(队列对象)。

例如

workQueue = queue.Queue(10)

答案 5 :(得分:0)

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

try:
   import queue
except ImportError:
   import Queue as queue

答案 6 :(得分:0)

我只是将inputs = torch.randn(8, 1, 64, 96, 96) model = CNN() outputs = model(inputs) print(outputs.shape) # torch.Size([8, 3]) 中的文件Queue.py复制到queue.py,就解决了我的问题。

答案 7 :(得分:-8)

您需要通过Queuelib或来源安装Python Package Index (PyPI)

使用pip进行安装: -

$ pip install queuelib

使用easy_install进行安装: -

$ easy_install queuelib

如果您已下载源tarball,则可以通过运行以下命令(以root身份)安装它: -

python setup.py install