Подтвердить что ты не робот

ImportError: Нет модуля с именем "Очередь"

Я пытаюсь импортировать модуль requests, но я получил эту ошибку моя версия python 3.4 работает на ubuntu 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'
4b9b3361

Ответ 1

Я решаю проблему, в которой была проблема: у меня был файл с именем queue.py в том же каталоге

Ответ 2

import queue нижний регистр q в Python 3.

Измените q на q, и все будет хорошо.

(см. код fooobar.com/questions/251853/... для интеллектуального переключения.)

Ответ 3

Очередь находится в модуле многопроцессорности, поэтому:

from multiprocessing import Queue

Ответ 4

В моем случае это должно быть:

from multiprocessing import JoinableQueue

Поскольку в python2 у Queue есть методы, такие как .task_done(), но в python3 multiprocessing.Queue не имеет этого метода, а multiprocessing.JoinableQueue делает.

Ответ 5

Я столкнулся с той же проблемой и узнал, что модуль очереди определяет классы и исключения, которые определяют публичные методы (объекты очереди).

Ex.

workQueue = queue.Queue(10)

Ответ 6

Это из-за версии Python. В Python 3 он import Queue as queue; наоборот в Python 2.x это import queue. Если вы хотите это для обеих сред, вы можете использовать что-то ниже, как указано здесь

try:
   import queue
except ImportError:
   import Queue as queue

Ответ 7

У меня тоже была эта проблема с модулем "запросы". Затем я понял, что вам нужно вручную отредактировать модуль "urllib3".

откройте C:\Users\Hp\AppData\Local\Programs\Python\Python35\Lib\site-packages\urllib3\packages и поместите первую строку six.py в следующую инструкцию:

from multiprocessing import Queue as queue

Не забудьте сохранить его, затем все готово!

Ответ 8

Вам нужно установить Queuelib либо через Python Package Index (PyPI), либо из источника.

Чтобы установить с помощью pip: -

$ pip install queuelib

Для установки с помощью easy_install: -

$ easy_install queuelib

Если вы загрузили исходный tarball, вы можете установить его, выполнив следующее (с правами root): -

python setup.py install