【发布时间】:2017-09-22 11:37:38
【问题描述】:
我的 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'
接下来我应该尝试什么?
【问题讨论】:
-
你可以试试
import queue -
解释一下:在 Python 2 上,模块被命名为
Queue,在 Python 3 上,它被重命名为遵循 PEP8 指南(模块名称全部小写),使其成为queue。 class 在所有版本(遵循 PEP8)上仍为Queue。 -
@Jean-FrançoisFabre:不幸的是,那里描述的问题最好由公认的答案来回答。
requests模块已经尝试从queue导入,如果失败则回退到Queue。他们的问题根本与 Python 版本无关。使用multiprocessing.Queue的建议是一个非常糟糕的答案(你必须给requests打猴子补丁,这将涉及减慢一切,如果涉及到不可取的东西,则破坏);该问题的每个答案除了被接受的答案都是由不关注 OP 实际问题的人发布的。 -
@ShadowRanger 所以你建议重新开放?因为这个特定的问题更清楚,所以我会飞。您的评论(带有 PEP8 的东西)会是一个很好的答案。
-
@Jean-FrançoisFabre:我猜?这个问题是一个可怕的重复目标。大多数以它为重复的问题都是这样的,不是命名个人编写的模块
queue.py的问题(那里的最终问题),而是在 Python 3 上尝试import Queue(这里的问题)。
标签: python multithreading python-3.x python-import