4
我有以下代码test.py:多包在交互式Python
#multiprocessing in the interactive Python
import time
from multiprocessing import Process, Pipe
def MyProcess(a):
while(1):
time.sleep(1)
a.send("tic")
if __name__ == "__main__":
a, b = Pipe()
p = Process(target=MyProcess, args=(a,))
p.start()
while(1):
msg=b.recv()
print(msg)
,如果我在DOS下执行它壳“蟒蛇test.py” 它工作正常,但它不一样,如果我的工作使用IEP(Pyzo)的“Execute File”(执行文件)。
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "C:\pyzo2014a_64b\lib\multiprocessing\spawn.py", line 106, in spawn_main
exitcode = _main(fd)
File "C:\pyzo2014a_64b\lib\multiprocessing\spawn.py", line 116, in _main
self = pickle.load(from_parent)
AttributeError: Can't get attribute 'MyProcess' on <module '__main__' (built-in)>
我发现这是一个记录在案的“问题”。请检查以下链接的答案。
multiprocessing breaks in interactive mode
这是否意味着我不应该从交互式Python使用多包?这是否意味着我无法从IPython控制台创建进程? 任何对此的澄清将高度赞赏
一个新的'pathos'发布是迫在眉睫。现有的稳定版本比较老,并且早于'pip',但是用'setuptools'平均安装。 –
谢谢Mike, 我会带走一些感受,并会报告。 –