首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用dill.load进行Python多处理

用dill.load进行Python多处理
EN

Stack Overflow用户
提问于 2018-10-09 12:52:06
回答 1查看 366关注 0票数 0

在通过MultiProcessing池方法执行函数时,我遇到了很大困难

代码语言:javascript
复制
    dill.load('somefile.sav','rb')

代码是这样的:

代码语言:javascript
复制
    import dill as dill  
    import multiprocessing_on_dill as mp

    dill_func = dill.load('somefile.sav','rb')

    def some_mp_func(x):
     dill_func(x)

    if (__name__ == '__main__'):
     __spec__ = "ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>)" 
     x="test"
     pool = mp.Pool(processes = (8))
     pool.map(some_mp_func, x)
     pool.close()
     pool.join()

dill_func是一个SKlearn管道。

产出如下:

代码语言:javascript
复制
NameError: name 'Y' is not defined

其中'Y‘是dill_func中的一个函数,它是dill_func类的一部分。

在没有多处理的情况下运行some_mp_func(x)非常好,没有名称错误。有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-09 14:46:24

解决方案:当转储时使用此设置

代码语言:javascript
复制
    dill.settings['recurse']=True
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52721543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档