关于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,刚好和引入包名称一致,破案!

posted @ 2024-07-07 15:08  乐盘游  阅读(12)  评论(0编辑  收藏  举报