多线程,无法运行进程命令。

3
我正在尝试以下代码:
#!/usr/bin/python
import multiprocessing

def f(name): 
print 'hello', name

if __name__ == '__main__':
    p = multiprocessing.Process(target=f, args=('bob',))
    p.start()
    p.join()

我得到的输出是:
Traceback (most recent call last):
  File "a.py", line 9, in <module>
    p = multiprocessing.Process(target=f, args=('bob',))
AttributeError: 'module' object has no attribute 'Process'

12
你把脚本命名为multiprocessing.py了吗?如果是的话,请把它重命名。 - dano
也许你可以在Python shell中输入import multiprocessing来检查是否可以导入多进程。 - zamk
即使您在父目录中将multiprocessing.py命名为任何文件名,您仍将收到错误。 - Bhargav Rao
2
我无法重现你的错误。问题可能是你的目录中有另一个名为“multiprocessing”的模块,该模块位于文件“a.py”所在的目录中。 - Bhargav Rao
@MuhammadSuleman 列出存储 a.py 文件的目录中的所有文件。 - Bhargav Rao
显示剩余10条评论
4个回答

17
您正在尝试从本地目录而非Python库中导入multiprocessing模块。Python解释器首先尝试从当前目录导入模块。由于您的目录中有一个名为multiprocessing.pyc的文件,因此解释器正在尝试导入该文件。因此,删除multiprocessing.pyc将有助于解决您的问题。

非常感谢!@Bhargav Rao - Muhammad Suleman

6

不要将文件名命名为"multiprocessing.py",可以选择其他名称。

谢谢, vybhav


0
错误在于命名,我把我的脚本命名为 'multiprocessing.py',一旦它被创建。我又写了一个名为 'a.py' 的脚本,但两个脚本都不能正常工作。在列出目录之后,发现了 'multiprocessing.pyc' 文件。我删除了这个文件,然后执行 'a.py' 文件,它就像宝石一样运行了!感谢 @Bhargav Rao 的提示。

0

不要将名称与multiprocess.py放在同一目录中,而应使用不同的名称。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接