pool.map() 无法识别主线程中声明的变量



让我们举例说:

import multiprocessing
def process(lines):
print(something)
if __name__ == '__main__':
something = 'something'
pool = multiprocessing.Pool(10)
with open(r'C:Usersatestfilestest.txt') as lines:
pool.map(process, lines)

我收到一个名称错误:名称"某物"未定义。

有人知道为什么会发生这种情况,并且知道解决方法吗?

multiprocessing.Pool

不是线程池,而是进程池。Windows 不支持分叉,因此您必须something显式传递给新进程。

如果要使用线程池,请改用from multiprocessing.dummy import Pool

最新更新