Python 不能拾取<;类型';功能'>;:pool.map()导致属性查找\内置\函数失败
问题设置为:Python 不能拾取<;类型';功能'>;:pool.map()导致属性查找\内置\函数失败,python,multiprocessing,Python,Multiprocessing,问题设置为: 有一个名为target的函数,我想使用pool.map()进行多处理 我正在使用多处理模块 似乎使用pool.map的函数必须是可序列化/可拾取的 我的目标函数是模块中的第一级函数 问题是: 目标函数中存在无法序列化的数据库连接 我无法确定这个数据库连接 我能做些什么来绕过这个问题并使用pool.map()吗?还是别的什么 我已尝试安装pathos软件包。但它的依赖性柴堆已经不能提供柏油球了。而且我的机器没有internet连接。是否可以在子进程中重新建立数据库连接?@mduran
我已尝试安装pathos软件包。但它的依赖性柴堆已经不能提供柏油球了。而且我的机器没有internet连接。是否可以在子进程中重新建立数据库连接?@mdurant谢谢您的回答。我不知道你的想法。你能提供更多的信息吗?或者这上面的链接。谢谢。我的意思是,您可以从原始连接详细信息(ip、DB、用户名、端口…)中设置游标(python DB api)、引擎(sqlalchemy)或任何内容。像postgres、mysql这样的现代数据库非常乐意同时从多个进程访问。
Pool.map()
使用Queue
,它不接受任何不可拾取的内容。您可以尝试使用Process()
实现多处理,也可以将worker函数放入一个单独的Python中,并使用Pool.map()
调用子流程.call
执行Python文件。