import mutiprocessing 报错:AttributeError: module 'multiprocessing' has no attribute 'Process'

在学习多进程时:

import mutiprocessing 报错 :AttributeError: module 'multiprocessing' has no attribute 'Process'

源码如下:

# -*- coding: utf-8 -*-

import multiprocessing as mp
import threading as td

def job(a,b):
    print('aaaaaaaaaaaaaaaaaaaa')

if __name__ == '__main__':
    p1 = mp.Process(target=job,args=(1,2))
    p1.start()
    p1.join()

1、最开始以为 multprocessing 拼写错误,求助字典发现英语拼写无误。


2、接着判断 multiprocessing 模块没有安装,后查询发现该模块为自带的。


3、后来检查得知我源代码的名称也是 multiprocessing.py,判断有可能循环导入了自己的这段代码。
修改名称之后发现程序能够正常运行了。

下图:我的工程源码名称也是:multiprocessing.py

python库中的 multiprocessing 模块

修改自己的工程名称为: multiprocessing_1.py, 问题解决!!!

从上面的分析得出,Python的模块导入中遵循一定的顺序,本地的模块如果跟内置模块重名,优先导入本地模块。
查询文档详细解释如下:

 当import一个模块后,python会按照下面的顺序来找那个将要导入的模块文件


1、程序的主目录。上一讲中,在codes这个目录中运行交互模式,这时候的主目录就是codes,当在那个交互模式中运行import mmmm的时候,就首先在codes这个目录中搜索相应的文件(找到.py之后编译成为.pyc)。当然,后面在网页编程中,看官会看到,所谓主目录是可以通过顶层文件设置的目录。


2、PYTHONPATH目录。这是一个环境变量设置,如果没有设置则滤去。如何进行环境变量设置,请看官google啦。


3、标准库目录。已经随着Python的安装进入到计算机中的那个。


4、任何.pth文件的内容。如果有这类文件,最后要在这类文件中搜索一下。这是一个简单的方法,在.pth文件中,加入有效目录,使之成为搜索路径。

猜你喜欢

转载自blog.csdn.net/xrinosvip/article/details/81909129