以下简单脚本在python3中引发了ImportError:
from multiprocessing import Queue
queue = Queue()
print("OK")
重现此错误的关键是对该文件命名queue.py
,然后出现以下消息:
Traceback (most recent call last):
File "queue.py", line 3, in <module>
queue = Queue()
File "/home/wangc/app/anaconda/lib/python3.5/multiprocessing/context.py", line 100, in Queue
from .queues import Queue
File "/home/wangc/app/anaconda/lib/python3.5/multiprocessing/queues.py", line 20, in <module>
from queue import Empty, Full
File "/home/wangc/temp/queue.py", line 3, in <module>
queue = Queue()
File "/home/wangc/app/anaconda/lib/python3.5/multiprocessing/context.py", line 100, in Queue
from .queues import Queue
ImportError: cannot import name 'Queue'
如果文件名为queueue.py
,则一切正常。
我认为这是因为多处理模块正在尝试从我的queue.py导入Queue,因为其名称与多处理模块中的某些文件一致。
但是,如果这是python的工作方式,那么我应该避免使用任何可能的内部库的文件名,这不切实际。
此错误是否归因于我的文件和多处理模块中某些文件的文件名相同?如果是的话,在常规编程中,如何确保我的文件名与任何可能的库文件不同?
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句