我有两个Python文件。
文件:multiprocess_pool.py
from multiprocessing import Pool
A = Pool(5)
文件:main.py
from multiprocess_pool import A
def start(x):
print(x+1)
if __name__ == '__main__':
with A as a:
print(a.apply_async(start, args=(1,)).get())
当我执行 python main.py 时,出现下一个错误。
AttributeError: Can't get attribute 'start' on <module '__main__'
我不想在
Pool
中声明main.py
。由于我的服务是一个 Web 服务器,因此我需要调用 Pool
来执行一些 CPU 密集型任务。我想将 Pool
声明为变量并将其导入到另一个文件中。
您需要按如下方式重组代码:
def start(x):
print(x)
return x+1
if __name__ == "__main__":
from multiprocess_pool import A
with A as a:
print(a.apply_async(start, args=(1,)).get())
输出:
1
2