web-dev-qa-db-fra.com

ImportError: Aucun module nommé 'File d'attente'

J'essaie d'importer le module requests, mais cette erreur s'est produite lorsque ma version de python est 3.4 s'exécutant sur 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'
53
Ali Faki

Je résous le problème. Mon problème était que j'avais un fichier nommé queue.py dans le même répertoire.

27
Ali Faki

import queue est en minuscule q dans Python 3.

Changez Q en q et tout ira bien.

(Voir le code dans https://stackoverflow.com/a/29688081/632951 pour la commutation intelligente.)

98
Pacerier

La file d'attente se trouve dans le module de multitraitement de manière à:

from multiprocessing import Queue
50
peter

Dans mon cas, cela devrait être:

from multiprocessing import JoinableQueue

Depuis python2, Queue a des méthodes comme .task_done(), mais en python3, multiprocessing.Queue n'a pas cette méthode et multiprocessing.JoinableQueue.

1
Panfeng Li

C'est à cause de la version Python. Dans Python 3 c'est import Queue as queue; au contraire dans Python 2.x c'est import queue. Si vous le souhaitez pour les deux environnements, vous pouvez utiliser quelque chose ci-dessous, comme mentionné ici

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

Je rencontre le même problème et apprends que le module de file d’attente définit des classes et des exceptions, ainsi que les méthodes publiques (objets de file d’attente).

Ex.

workQueue = queue.Queue(10)
0
asfawh