导入函数和使用 ProcessPoolExecutor 时出现 ModuleNotFoundError

时间:2021-04-30 18:41:44

标签: python parallel-processing process-pool

我正在尝试使用 ProcessPoolExecutor 并行执行 Python 脚本(此处称为 file_2.py)。该脚本使用我在另一个文件(此处称为 file_1.py)中编写的函数。这两个文件都在同一个目录下。

如果我重视功能并按顺序运行脚本,一切都很好。此外,当我将函数从 file_2.py 复制到 file_1.py 时,脚本会并行顺利运行。但是,当我尝试结合使用 ProcessPoolExecutor 导入函数时,出现以下错误:

ModuleNotFoundError: 没有名为“file_1”的模块。

如果有人知道如何解决这个问题,我会很棒!提前致谢:)

这是我的文件的简化版本:

# file_1.py

def addition(a,b):
    return a+b
# file_2.py

import functools
import numpy as np
import concurrent.futures
from file_1 import addition

if __name__ == '__main__':
    lst = np.arange(10)
    cons = 100
    
    partial = functools.partial(addition, b=cons)
    with concurrent.futures.ProcessPoolExecutor() as exc: 
        res = list(exc.map(partial, lst))

0 个答案:

没有答案