我试图复制这一例,从这个多处理的讲座杰西noller(作为建议在以后)[http://pycon.blip.tv/file/1947354?filename=Pycon-IntroductionToMultiprocessingInPython630.mp4]

但由于某些原因我得到一个错误,因为虽然它无视我的功能定义:我在Windows XP(win32) 我知道有限制有关的处理库2.6需要的一切被pickleable

from multiprocessing import Process
import time

def sleeper(wait):
    print 'Sleeping for %d seconds' % (wait,)
    time.sleep(wait)
    print 'Sleeping complete'

def doIT():    
    p = Process(target=sleeper, args=(9,))
    p.start()
    time.sleep(5)
    p.join()

if __name__ == '__main__':
    doIT()

输出:

Evaluating mypikklez.py
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "C:\Python26\lib\multiprocessing\forking.py", line 342, in main
    self = load(from_parent)
  File "C:\Python26\lib\pickle.py", line 1370, in load
    return Unpickler(file).load()
  File "C:\Python26\lib\pickle.py", line 858, in load
    dispatch[key](self)
  File "C:\Python26\lib\pickle.py", line 1090, in load_global
    klass = self.find_class(module, name)
  File "C:\Python26\lib\pickle.py", line 1126, in find_class
    klass = getattr(mod, name)
AttributeError: 'module' object has no attribute 'sleeper'

错误造成的问题是:AttributeError:'模块'象没有属性'梦'

作为简单的功能,因为它是我不明白什么是举行了。

这只是为自学的目的基本概念。我不是想要预先优化任何真实世界的问题。

谢谢。

有帮助吗?

解决方案

从要直接运行的代码到python解释(REPL)回溯似乎

不要那样做。保存代码在一个文件中,并从文件中运行它来代替,与命令:

python myfile.py

这将解决您的问题。


作为一个无关注意,这条线是错误的:

print 'Sleeping for ' + wait + ' seconds'

它应该是:

print 'Sleeping for %d seconds' % (wait,)

由于不能连接串和int对象(Python是强类型化的)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top