Python多处理。池工作线程保持空闲

Python多处理。池工作线程保持空闲,python,multiprocessing,pool,Python,Multiprocessing,Pool,我是Python的初学者。我试图使用multiprocessing.Pool运行一个简单的函数,但是当我运行程序时,它没有得到处理。我可以看到,不同的进程产生了,但它们是不同的。例如,下面的代码确实生成了两个工作进程,但没有输出,其他什么也没有: import multiprocessing def f(x): print("Process "+str(x)) return True if __name__ == '__main__': pool

我是Python的初学者。我试图使用multiprocessing.Pool运行一个简单的函数,但是当我运行程序时,它没有得到处理。我可以看到,不同的进程产生了,但它们是不同的。例如,下面的代码确实生成了两个工作进程,但没有输出,其他什么也没有:

import multiprocessing

def f(x):
    print("Process "+str(x))
    return True

if __name__ == '__main__':
    pool = multiprocessing.Pool(processes=2)            
    result = pool.map(f, range(1000)) 
我正在使用Microsoft Visual Studio 2019运行Python 3.9。操作系统是Windows10。我在这台计算机上使用Python3.7时遇到了同样的问题。我曾在另一台计算机(也是Windows 10,VS2019)上尝试过相同的代码,效果很好。区别在于这一个有一个,而另一个有一个i7


我在网上搜索过,但我没有遇到任何类似的问题,也没有解决我的问题。有人知道为什么会发生这种情况和/或可能的修复方法吗?处理器的类型可能与此有关吗?谢谢

这只是一个猜测:

我知道这不会在Jupyter笔记本或交互式口译员下运行。请参阅,特别是以下部分:

这些环境的解决方案是使用辅助函数
f
,将其放在单独的模块中,例如worker.py,然后导入辅助函数:

导入多处理
从工人进口f
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
池=多处理。池(进程=2)
结果=pool.map(f,范围(1000))

试一试,让我们知道其他同样拥有VisualStudio的人,这是否有效。谢谢。

如果且仅当您的问题与visual studio直接相关时,请使用tag
visual studio
谢谢@Booboo的回答!我试过你的解决办法,但没用。相反,我采取了一种更激进的方法,决定重新安装python以及所有其他软件包。令人惊讶的是,它成功了!因此,令人尴尬的是,问题很可能与我在第一次安装时忽略的某些缺少的依赖项有关(尽管我无法准确地指出wat在安装后丢失)。案件结案!对不起,浪费了你的时间:(那么你为什么要接受我的回答?你应该不接受它。