内置。导入错误: 无法导入名称'Empty'



在python中的一本平行编程中工作示例时,我在使用多处理队列的代码中遇到以下错误:

    File "C:pyDevmultiprocqueue-test.py", line 4, in <module>
      queue = multiprocessing.Queue()
    File "C:Anaconda3Libmultiprocessingcontext.py", line 100, in Queue
      from .queues import Queue
    File "C:Anaconda3Libmultiprocessingqueues.py", line 20, in <module>
      from queue import Empty, Full
builtins.ImportError: cannot import name 'Empty'

进行了一些实验后,我确定生成此错误所需的只是以下代码(这是上面错误消息中提到的全部queue-test.py文件)。

import multiprocessing
if __name__ == "__main__":
    queue = multiprocessing.Queue()

我在带有Windows 7的计算机上使用Anaconda 4.1.0运行Python 3.5.1Windows 10,并且在那台机器上正常工作。

以为我的python安装可能存在损坏的文件或其他问题,我尝试重新安装Anaconda,但这无济于事。我执行了Google搜索,但找不到此特定错误。其他stackoverflow帖子,例如此处找到的:Invimperror:无法导入名称x似乎不相关,因为这涉及Python标准库的一部分,而不是我写过的代码和类。

我在代码中遇到了几乎相同的错误,最后弄清楚了哪里出了问题。希望它能以某种方式帮助您。

我将我的python脚本命名为" queue.py",然后运行,我获得了错误信息。下面就像您的:

Traceback (most recent call last):
File "F:/02_Coding/01_Projects/PyHomeWork/Day23_Process/queue.py", line 19, in <module>
queue = multiprocessing.Queue()
File "E:2_CodingSoftware2_InstalledAnaconda3libmultiprocessingcontext.py", line 101, in Queue
from .queues import Queue
File "E:2_CodingSoftware2_InstalledAnaconda3libmultiprocessingqueues.py", line 20, in <module>
from queue import Empty, Full
ImportError: cannot import name 'Empty'

我使用以下方法来创建队列:

if __name__ =="__main__":
queue = multiprocessing.Queue()

最后,我注意到我不应该以" queue.py"的名称命名该文件,似乎在解释脚本时会对Python产生误导。在我重命名脚本之后,错误就消失了。多么愚蠢的错误,大声笑。

所以我的建议是,您可以检查在文件夹下是否有一个名为" queue.py"的脚本,或任何自定义模块都会与库中的任何自定义模块发生冲突。

希望您可以解决这个问题。最好的

相关内容

  • 没有找到相关文章

最新更新