web-dev-qa-db-fra.com

Aucun module nommé 'Queue'

Mon importation de modules Python

import Queue
from threading import Thread
import time

Mais quand je lance du code

File "b1.py", line 3, in <module>
    import Queue
ModuleNotFoundError: No module named 'Queue'

J'ai vu des discussions similaires sur SO, mais rien ne fonctionne pour moi

/usr/bin/python3 --version
Python 3.5.2
milenko@milenko-System-Product-Name:~$ python --version
Python 3.6.0 :: Anaconda custom (64-bit)

Si je change pour

from multiprocessing import Queue

il n'y a pas de problème d'importation.

AttributeError: 'Queue' object has no attribute 'join'

Que dois-je essayer ensuite?

6
MishaVacic

Sur Python 2, le module est nommé Queue, sur Python 3, il a été renommé à suivre - directives PEP8 (tout en minuscules pour les noms de modules), ce qui en fait queue. La classe reste Queue sur toutes les versions (après PEP8).

En règle générale, la façon dont vous écririez les importations portables de version serait la suivante:

try:
    import queue
except ImportError:
    import Queue as queue
12
ShadowRanger