python - Python多处理导入类酸洗错误
问题描述
对于我正在处理的项目,我需要使用已编译文件中的类,并且我不明白使用多处理模块时遇到的错误。
我不断收到错误,因此我大大简化了我正在使用的内容,但我意识到即使是最简单的实现也会出现相同的错误。
我尝试运行以下代码:
from multiprocessing import Pool, cpu_count
from structures.target import Target
def get_lat(tar: Target)->float:
return tar.x_coord
if __name__ == "__main__":
# create target_list of Target objects
pool = Pool(cpu_count())
lat_list = pool.map(get_lat, target_list)
从文件中导入目标类的位置
target.cpython-38-x86_64-linux-gnu.so
在运行脚本的目录中包含的结构目录中。
据我了解,传递给 pool.map 的所有内容都必须是可腌制的,我认为是这种情况,因为它们似乎是在低级别定义的。但是我仍然收到以下错误:
_pickle.PicklingError: Can't pickle <class 'compiled.structures.target.Target'>: import of module 'compiled.structures.target' failed
我不明白为什么导入编译文件失败,因为运行这个:
if __name__ == "__main__":
# create target_list of Target objects
l = [tar.x_coord for tar in target_list]
完美运行。任何帮助将非常感激。
解决方案
推荐阅读
- ios - 标签文本增加时如何以编程方式增加集合视图单元格高度?
- android - Kotlin:使用伴随对象中创建的函数更新视图
- r - 使用“Tuber”将 R 连接到 YouTube - 无法读取令牌错误
- javascript - Froala:图像的自定义 HTML 模板
- java - 应用程序崩溃并且无法在模拟器和设备中打开怎么办?
- typo3 - Typo3 自定义扩展列表视图 BE 模板不加载标题
- java - 将结果集映射到不是实体的自定义 pojo
- svg - Fabric.js:如何使用预定义的 SVG 过滤器?
- excel - 使用vba将文本文件导入excel时丢失数字数据
- django - 如何从 Post 方法中获取值