No module named 'Queue'

2019-02-22 11:03发布

问题:

My import of Python modules

import Queue
from threading import Thread
import time

But when I run code

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

I have seen similar threads on SO,but nothings works for me

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

If I change to

from multiprocessing import Queue

there is no import problem.But than I have this

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

What should I try next?

回答1:

On Python 2, the module is named Queue, on Python 3, it was renamed to follow PEP8 guidelines (all lowercase for module names), making it queue. The class remains Queue on all versions (following PEP8).

Typically, the way you'd write version portable imports would be to do:

try:
    import queue
except ImportError:
    import Queue as queue