TypeError:期望的字符串或Unicode对象,找到NoneType - 多处理池不在Zope/Plone外部方法中工作

Rav*_*avi 7 zope plone python-2.6 python-multiprocessing python-pool

我正在使用

Zope - 2.13.19
Python - 2.6.8
Run Code Online (Sandbox Code Playgroud)

下面的代码在手动运行时有效,但在外部方法时则无效.它会引发以下错误.我在做概念错误的事情吗?

Exception in thread Thread-3:
Traceback (most recent call last):
  File "/opt/python2.6/lib/python2.6/threading.py", line 532, in __bootstrap_inner
    self.run()
  File "/opt/python2.6/lib/python2.6/threading.py", line 484, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/opt/python2.6/lib/python2.6/multiprocessing/pool.py", line 225, in _handle_tasks
    put(task)
TypeError: expected string or Unicode object, NoneType found


import time
from multiprocessing import Pool
import logging


def func(name):
    print 'hello %s,' % name
    time.sleep(5)
    print 'nice to meet you.'


def get_data():
    pool = Pool(processes=2)
    pool.map(func, ('frank', 'justin', 'osi', 'thomas'))
Run Code Online (Sandbox Code Playgroud)

Tia*_*ica 0

确保跨进程边界发送的所有内容都可以被腌制

正如多媒体迈克所说:

只要 Python 的 pickle 工具可以对对象进行 pickle,就可以跨进程边界将对象发送到工作进程。