【发布时间】:2021-08-25 22:09:47
【问题描述】:
我对 Python 很陌生,这个问题可能表明了这一点。我正在处理我的脚本的多处理部分,找不到我的问题的明确答案。
我正在为一件事而苦苦挣扎。使用多处理时,部分代码必须用 if __name__ == "__main__" 保护。我明白了,我的游泳池工作得很好。但我很想导入整个脚本(让它成为一个返回参数的大函数是最好的)。这就是问题所在。首先,如果由于那个守卫,它的一部分只能在从主/源文件启动时运行,我该如何导入?其次,如果我设法解决它并且整个脚本将在一个大函数中,pickle 无法处理,将使用“multiprocessing on dill”或“pathos”修复它吗?
谢谢!
【问题讨论】:
-
您应该将想要导入的代码放在一个函数中。然后使用该函数在您的其他模块的受保护的
__name__ == '__main__'块中。 -
" 其次,如果我设法解决它并且整个脚本将在一个大函数中,"整个脚本不必是一个巨大的函数。通常,您希望将代码分解为模块化、可重用且逻辑一致的部分。是的,可能有“一个功能来统治他们所有人”......
标签: python multiprocessing pickle dill