簡體   English   中英

Python 與 macOs 的多處理

[英]Python multiprocessing with macOs

我有一台 mac(MacOs 10.15.4、Python ver 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()  

我希望在 output 中看到的內容:

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

或者類似...

我實際看到的是:

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

什么都沒有,沒有錯誤,沒有信息,什么都沒有。 我已經嘗試過 mamy 程序但沒有結果。 我可以看到,主要問題是 function 的調用,實際上是指令:

if __name__ == '__main__':  

不呼叫 function,

def test_function(i): 

我嘗試了很多這樣的例子,但沒有結果。

是否可能和/或在 macO 中並行化的最簡單方法是什么?

我知道這是一個有點老的問題,但我剛剛遇到了同樣的問題,我通過使用不同的多線程包版本解決了它,即:

import multiprocess

代替:

import multiprocessing

參考:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM