没有名为' Queue'

时间:2017-09-22 11:37:39

标签: python multithreading python-3.x python-import

我导入的Python模块

import Queue
from threading import Thread
import time

但是当我运行代码时

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

我在SO上看过类似的帖子,但是没有用到我身上

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

如果我改为

from multiprocessing import Queue

没有导入问题。但是我没有这个

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

我接下来应该尝试什么?

2 个答案:

答案 0 :(得分:11)

在Python 2上,模块名为Queue,在Python 3上,was renamed跟随PEP8 guidelines(模块名称全部为小写),使其成为queue在所有版本上都是Queue(在PEP8之后)。

通常,您编写便携式导入版本的方式是:

try:
    import queue
except ImportError:
    import Queue as queue

答案 1 :(得分:0)

就我而言,我有以下 Python 2.7

from Queue import Queue, Empty

我只将模块名称更改为小写,它在 Python 3 中运行良好

from queue import Queue, Empty