web-dev-qa-db-ja.com

ImportError:「Queue」という名前のモジュールはありません

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'
53
Ali Faki

同じディレクトリにqueue.pyという名前のファイルがあったという問題を解決しました

27
Ali Faki

import queuelowercaseq in Python 3。

Qqに変更すると問題ありません。

(スマートスイッチングについては、 https://stackoverflow.com/a/29688081/632951 のコードを参照してください。)

98
Pacerier

キューはマルチプロセッシングモジュールにあるため、次のようになります。

from multiprocessing import Queue
50
peter

私の場合、次のようになります。

from multiprocessing import JoinableQueue

Python2ではQueueには.task_done()のようなメソッドがありますが、python3ではmultiprocessing.Queueにはこのメソッドがなく、multiprocessing.JoinableQueueにはあります。

1
Panfeng Li

Pythonバージョンのためです。 Python 3では、import Queue as queueです。反対にPython 2.xではimport queueです。両方の環境で必要な場合は、前述のように以下を使用できます here

try:
   import queue
except ImportError:
   import Queue as queue
0
GPrathap

同じ問題にぶつかり、キューモジュールがパブリックメソッド(キューオブジェクト)を定義するクラスと例外を定義することを学びます。

例.

workQueue = queue.Queue(10)
0
asfawh