Multithreading, can't run Process command

2019-07-20 12:35发布

问题:

I am trying to the following code:

#!/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()

The output I get is :

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'

回答1:

You are trying to import multiprocessing from your local directory and not from the python library. The python interpreter first tries to import the module from the present directory. As you have got a file with the name multiprocessing.pyc in your directory, the interpreter is trying to import that. Hence you have got the error. Thus deleting multiprocessing.pyc will help resolve your problem.



回答2:

The mistake was naming, my script as 'multiprocessing.py', once it was created. I made an another script with name 'a.py' and both of them were not working. After listing the directories, 'multiprocessing.pyc' was located. I deleted this file, and executed 'a.py' file which executed like gem! thanks to @Bhargav Rao for highlighting



回答3:

Dont give the name of the file as "multiprocessing.py", give any other

thanks, vybhav