ImportError: cannot import name Process

当前文件名为:multiprocessing.py

   #!/usr/bin/env python3
    import os 
    from multiprocessing import Process
    
    def child_proc(name):
        print('child process', name, '[',os.getpid(),']','start running...')
    if __name__ == '__main__':
        print('parent process', os.getpid())
        for i in range(5):
            create_childpid = Process(target=child_proc,args=(str(i),))
            print('process will start...')
            create_childpid.start()
        create_childpid.join()
        print('process end')

运行:

sice@T:~/lxz$ vim multiprocessing.py
sice@T:~/lxz$ chmod +x multiprocessing.py 
sice@T:~/lxz$ ./multiprocessing.py 

报错:

Traceback (most recent call last):
  File "./multiprocessing.py", line 3, in <module>
    from multiprocessing import Process
  File "/home/sice/lxz/multiprocessing.py", line 3, in <module>
    from multiprocessing import Process
ImportError: cannot import name 'Process'

错误的原因是:文件名跟模块名相同导致错误

当前文件名为:multiprocessing.py
 模块名:   from  multiprocessing   import Process

解决方法如下:
第1步.(只要文件名与模块名不同就可以了)修改文件名为:aaa.py
Linux系统下

sice@T:~/lxz$ mv multiprocessing.py aaa.py      # 重命名为 aaa.py

window 环境下重命名就可以了

第2步. 删除 multiprocessing.pyc 文件和 __pycache__文件夹,到这里已经全部修改好了

 #!/usr/bin/env python3
    import os 
    from multiprocessing import Process
    
    def child_proc(name):
        print('child process', name, '[',os.getpid(),']','start running...')
    if __name__ == '__main__':
        print('parent process', os.getpid())
        for i in range(5):
            create_childpid = Process(target=child_proc,args=(str(i),))
            print('process will start...')
            create_childpid.start()
        create_childpid.join()
        print('process end')

改完运行 aaa.py 就可以了

猜你喜欢

转载自blog.csdn.net/qq_41731978/article/details/82936753
今日推荐