Python cProfiler使用多处理进行奇怪的工作

Python cProfiler使用多处理进行奇怪的工作,python,multiprocessing,profiler,pathos,Python,Multiprocessing,Profiler,Pathos,我得到了一个关于此代码的错误: from pathos.multiprocessing import ProcessingPool def diePlz(im): print('Whoopdepoop!') def caller(): im = 1 pool = ProcessingPool() pool.map(diePlz,[im,im,im,im]) if __name__=='__main__': caller() 当我使用cP

我得到了一个关于此代码的错误:

from pathos.multiprocessing import ProcessingPool
def diePlz(im):
    print('Whoopdepoop!')   
def caller():
    im = 1
    pool = ProcessingPool()
    pool.map(diePlz,[im,im,im,im]) 

if __name__=='__main__':
    caller()    
当我使用
cProfiler
运行它时:(
python3-mcprofile testProfiler.py

我提供的代码是这个问题的一个最简单的工作示例。我想调试一个大得多的代码,但我无法调试,因为
cProfiler
不断出现奇怪的错误

在这种情况下,重点是


这意味着
python3
无法识别
print
本身。在我的代码中,它无法识别
范围

,因此,我意识到这是在原始帖子发布后的很长一段时间,但我有完全相同的问题

在我的例子中,我得到了与原始后python内置函数完全相同的错误,例如
print()
len()
导致了如下错误:

NameError: name 'len' is not defined
我目前正在运行
multiprocess
version0.70.11.1和
dill
version0.3.3(pathos的组件,使基于进程的并行工作)

根据我在一个问题评论中发现的情况:包作者之一建议尝试:

导入dill
dill.settings['recurse']=True
至少在我的情况下,上面修复了错误

$ python3 testProfiler.py 
Whoopdepoop!
Whoopdepoop!
Whoopdepoop!
Whoopdepoop!
NameError: name 'print' is not defined
NameError: name 'len' is not defined