【问题标题】:cannot import name 'Process' from 'multiprocessing'无法从“多处理”导入名称“进程”
【发布时间】:2019-06-04 07:15:58
【问题描述】:

我编写了一个 python 代码来使用多处理计算数字的平方。 它显示了下面的错误。如何解决。

import os
from multiprocessing import Process, current_process


def sqaure(number):
    result=number*number
    process_id=os.getpid()
    print(f"Process ID : {process_id}")
    print(f"the number {number} sqaures to {result}")

if __name__=='__main__':
    numbers=[1,2,3,4]
    processes=[]
    for number in numbers:
        process=Process(target=sqaure, args=(number,))
        processes.append(process)

        process.start()

错误:

Traceback (most recent call last):
  File "C:/Users/Rohan/PycharmProjects/untitled1/hyu.py", line 2, in <module>
    from multiprocessing import Process, current_process
ImportError: cannot import name 'Process' from 'multiprocessing' (C:\Users\Rohan\PycharmProjects\untitled1\multiprocessing.py)

【问题讨论】:

  • 你在同一个目录下是否有一个名为multiprocessing.py的文件?
  • 是的,我删除了它。现在它的工作。谢谢

标签: python python-3.x python-multiprocessing


【解决方案1】:

您的 python 文件名为“multiprocessing.py”,这将与多处理模块冲突。只需重命名您的脚本名称即可。

【讨论】:

    【解决方案2】:

    您的回溯中的 File "(C:\Users\Rohan\PycharmProjects\untitled1\multiprocessing.py)" 行表明您在工作目录中有一个名为 multiprocessing.py 的文件。

    尝试删除/重命名它,因为它会影响真正的多处理模块。这里的问题是sys.path 中的第一个条目始终是.,因此在执行import. 时,工作目录中的文件将优先于标准模块

    【讨论】: