安装多处理python3

时间:2017-05-03 06:24:24

标签: python python-3.x multiprocessing

Python的新手。我想安装python的多处理模块。我使用的是python 3.6和pip 9.1版。

我收到一个错误,让我相信由于没有与python 3兼容的多处理模块,可能会发生以下错误。

$ pip3 install multiprocessing
Collecting multiprocessing
  Using cached multiprocessing-2.6.2.1.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/private/var/folders/8m/2fkldrg12lg0qzlhpm8yvyq00000gn/T/pip-build-dqdczlx9/multiprocessing/setup.py", line 94

所以,我使用安装模块的pip install multiprocessing安装了模块。我已经在python 3中编写了很多代码,所以我想使用它,我使用pycharm编辑器,我已经配置使用python3。现在,如果我在编辑器中执行代码,则会抛出错误,如

/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6 /Users/kkk/Desktop/testing/multiprocessing.py
Traceback (most recent call last):
  File "/Users/testing/multiprocessing.py", line 11, in <module>
    p = multiprocessing.Process(target=worker)
AttributeError: module 'multiprocessing' has no attribute 'Process'

Process finished with exit code 1

代码

    import multiprocessing

def worker():
    """worker function"""
    print ('Worker')
    return

if __name__ == '__main__':
    jobs = []
    for i in range(5):
        p = multiprocessing.Process(target=worker)
        jobs.append(p)
        p.start()

我该怎么做才能解决这个问题?

由于

3 个答案:

答案 0 :(得分:15)

自Python 2.6起,multiprocessing是一个内置模块。

它附带Python,不需要特定的安装步骤。

答案 1 :(得分:2)

问题不在于multiprocessing模块,而在于您实际尝试导入multiprocessing模块的命名脚本的方式。您将其命名为与模块相同,即multiprocessing.py,因此import multiprocessing实际上是导入脚本本身而不是标准库的模块。

这是因为way how Python searches modules在不同的位置和特定的顺序:

  
      
  • 包含输入脚本的目录(如果未指定文件,则为当前目录)。
  •   
  • PYTHONPATH(目录名称列表,语法与shell变量PATH相同)。
  •   
  • 与安装有关的默认设置。
  •   

如您所见,Python寻找要导入的模块的第一个位置是包含输入脚本的目录。这就是为什么它会根据您的情况导入脚本本身的原因。而且您的脚本不包含您要使用的Process类,这就是为什么出现错误AttributeError: module 'multiprocessing' has no attribute 'Process'的原因。

此问题并非特定于multiprocessing模块,任何模块都可能发生。因此,最好不要将脚本的名称与要使用(导入)的现有模块的名称相同。

答案 2 :(得分:0)

将文件名更改为multiprocessing.py以外的任何文件名... 您的代码将尝试自行导入。