使用maco的Python多处理



我有一个mac(MacOs 10.15.4,Python版本3.82(,需要在多处理中工作,但在我的电脑上,这些过程不起作用

例如,我复制了一个简单的并行python程序

import multiprocessing as mp  
import time  
def test_function(i):   
print("function starts" + str(i))  
time.sleep(1)  
print("function ends" + str(i))  
if __name__ == '__main__':  
pool = mp.Pool(mp.cpu_count())  
pool.map(test_function, [i for i in range(4)])  
pool.close()  
pool.join()  

我期望在输出中看到的内容:

function starts0  
function ends0  
function starts1  
function ends1  
function starts2  
function ends2  
function starts3  
function ends3

或者类似的。。。

我实际看到的:

= RESTART: /Users/Simulazioni/prova.py    
>>> 

什么都没有,没有错误,没有信息,什么都没有。我已经尝试了mamy程序,但没有结果。我可以看到,主要的问题是函数的调用,实际上是指令:

if __name__ == '__main__':  

不调用函数,

def test_function(i): 

我尝试了很多这样的例子,但都没有结果。

ti是否可能和/或在maco中并行化的最简单方法是什么?

我知道这是一个有点老的问题,但我刚刚面临同样的问题,我通过使用不同的多线程包版本来解决它,该版本为:

import multiprocess

而不是:

import multiprocessing

参考:

https://pypi.org/project/multiprocess/

相关内容

  • 没有找到相关文章

最新更新