无法在 python3.6 中导入多处理队列对象
Failed to import multiprocessing Queue object in python3.6
我在 python 中使用多处理库。我有 python 3.6。每当我尝试创建多处理时。 Queue() 对象我得到一个错误。
我的代码如下:
import multiprocessing
def square(arr,q):
for i in arr:
q.put(i*i)
arr=[1,2,3,4,5,6]
q=multiprocessing.Queue()
p1=multiprocessing.Process(target=square,args=(arr,q,))
p1.start()
p1.join()
result=[]
while q.empty() is False:
result.append(q.get())
print(result)
错误是:
Traceback (most recent call last):
File "qu.py", line 9, in <module>
q=multiprocessing.Queue()
File "/usr/lib/python3.6/multiprocessing/context.py", line 101, in Queue
from .queues import Queue
File "/usr/lib/python3.6/multiprocessing/queues.py", line 20, in <module>
from queue import Empty, Full
File "/home/vivek/Desktop/code/par/queue.py", line 11, in <module>
q=Queue()
File "/usr/lib/python3.6/multiprocessing/context.py", line 101, in Queue
from .queues import Queue
ImportError: cannot import name 'Queue'
正如您在错误回溯中列出的导入链中看到的那样,Python 正在尝试从以下位置导入 Queue
定义:
/home/vivek/Desktop/code/par/queue.py
这表明您以某种方式破坏了 Python 导入逻辑,因为它通常优先考虑 /lib
/usr/lib
文件夹中的模块。如果您设置了自定义 PYTHONPATH
环境变量,或者如果您弄乱了 sys.path
.
等模块变量,通常会发生这种情况
快速修复是将您的文件从 queue.py
重命名为其他名称。
我在 python 中使用多处理库。我有 python 3.6。每当我尝试创建多处理时。 Queue() 对象我得到一个错误。
我的代码如下:
import multiprocessing
def square(arr,q):
for i in arr:
q.put(i*i)
arr=[1,2,3,4,5,6]
q=multiprocessing.Queue()
p1=multiprocessing.Process(target=square,args=(arr,q,))
p1.start()
p1.join()
result=[]
while q.empty() is False:
result.append(q.get())
print(result)
错误是:
Traceback (most recent call last):
File "qu.py", line 9, in <module>
q=multiprocessing.Queue()
File "/usr/lib/python3.6/multiprocessing/context.py", line 101, in Queue
from .queues import Queue
File "/usr/lib/python3.6/multiprocessing/queues.py", line 20, in <module>
from queue import Empty, Full
File "/home/vivek/Desktop/code/par/queue.py", line 11, in <module>
q=Queue()
File "/usr/lib/python3.6/multiprocessing/context.py", line 101, in Queue
from .queues import Queue
ImportError: cannot import name 'Queue'
正如您在错误回溯中列出的导入链中看到的那样,Python 正在尝试从以下位置导入 Queue
定义:
/home/vivek/Desktop/code/par/queue.py
这表明您以某种方式破坏了 Python 导入逻辑,因为它通常优先考虑 /lib
/usr/lib
文件夹中的模块。如果您设置了自定义 PYTHONPATH
环境变量,或者如果您弄乱了 sys.path
.
快速修复是将您的文件从 queue.py
重命名为其他名称。