【发布时间】:2015-04-28 03:04:14
【问题描述】:
在一个名为 test.py 的文件中,我有
print 'i am cow'
import multi4
print 'i am cowboy'
在multi4.py 我有
import multiprocessing as mp
manager = mp.Manager()
print manager
我对这段代码的运行方式感到困惑。
在命令行中,如果我输入python,然后在python环境中输入import test.py,我会得到预期的行为:
Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information.
>>>import test
i am cow
<multiprocessing.managers.SyncManager object at 0x025209B0>
i am cowboy
>>>
但是,如果我在命令行输入test.py,我会得到
i am cow
i am cow
i am cow
i am cow
i am cow
i am cow
i am cow
i am cow
i am cow
i am cow
i am cow
i am cow
i am cow
i am cow
i am cow
i am cow
i am cow
i am cow
除非我杀了它,否则这大概会永远持续下去。当我杀死它时,我得到了一堆重复的错误:
KeyboardInterrupt
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "C:\Python27\lib\multiprocessing\forking.py", line 373, in main
prepare(preparation_data)
File "C:\Python27\lib\multiprocessing\forking.py", line 488, in prepare
'__parents_main__', file, path_name, etc
KeyboardInterrupt
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "C:\Python27\lib\multiprocessing\forking.py", line 373, in main
prepare(preparation_data)
File "C:\Python27\lib\multiprocessing\forking.py", line 488, in prepare
'__parents_main__', file, path_name, etc
KeyboardInterrupt
那么发生了什么?为什么它在导入时以一种方式运行,而当我尝试运行它时又以另一种方式运行?
【问题讨论】:
标签: python import multiprocessing importerror python-multiprocessing