关于import multiprocessing引用出错
关于import multiprocessing引用出错
0. 原因
当前文件名与python包体中关键词出现同名,导致循环引用
1. 排查过程
问题代码
import time
from multiprocessing import Process, Queue # 这里提示错误
def producer(queue):
queue.put("a")
time.sleep(2)
def consumer(queue):
time.sleep(2)
data = queue.get()
print(data)
if __name__ == '__main__':
queue = Queue(10)
my_producer = Process(target=producer, args=(queue,))
my_consumer = Process(target=consumer, args=(queue,))
my_producer.start()
my_consumer.start()
my_producer.join()
my_consumer.join()
提示错误
ImportError: cannot import name 'Process' from 'multiprocessing'
首先,点开python自带的包。粉色表明当前包存在multiprocessing
,不需要再去下载,和包没关系。
然后看当前文件名,multiprocessing.py
,刚好和引入包名称一致,破案!
人生到处知何似,应似飞鸿踏雪泥。