0
首先,我是多處理新手,我似乎無法做出一個非常簡單和直接的示例工作。這是我工作的例子:python多處理返回錯誤'模塊'對象沒有屬性'myfunc'
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()
每次我運行代碼,我收到此錯誤多次:
C:\Anaconda2\lib\site-packages\IPython\utils\traitlets.py:5: UserWarning: IPython.utils.traitlets has moved to a top-level traitlets package.
warn("IPython.utils.traitlets has moved to a top-level traitlets package.")
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "C:\Anaconda2\lib\multiprocessing\forking.py", line 381, in main
self = load(from_parent)
File "C:\Anaconda2\lib\pickle.py", line 1384, in load
return Unpickler(file).load()
File "C:\Anaconda2\lib\pickle.py", line 864, in load
dispatch[key](self)
File "C:\Anaconda2\lib\pickle.py", line 1096, in load_global
klass = self.find_class(module, name)
File "C:\Anaconda2\lib\pickle.py", line 1132, in find_class
klass = getattr(mod, name)
AttributeError: 'module' object has no attribute 'worker'
我知道這個問題很模糊,但我如果有人能指出我在正確的方向,我將不勝感激。
我在Windows上,我用python 2.7在Anaconda中運行它,代碼和上面完全一樣,沒有什麼更多的東西!我直接在IDE中的控制檯上運行它。編輯︰它看起來像當我直接在命令提示符下運行代碼它工作得很好,但這樣做使用Anaconda控制檯將無法正常工作。有人知道爲什麼嗎?
你的例子在這裏工作得很好。你確定你沒有「簡化」代碼嗎? –
你是如何運行該程序的?這是在Windows上嗎? – tdelaney
我在windows上,我用python 2.7在Anaconda中運行它,代碼和上面的代碼完全一樣,沒有什麼更多的東西!我直接在IDE中的控制檯上運行它 –