Sto leggendo il tema Multiprocessing per Python 3 e cercando di integrare il metodo nel mio script, tuttavia ricevo il seguente errore:Come eseguire il multiprocessing per una singola funzione in Python?
AttributeError: __ exit __
Io uso Windows 7 con un I-7 processori 8-core, I avere uno shapefile di grandi dimensioni che desidero elaborare (con il software di mappatura, QGIS) utilizzando preferibilmente tutti gli 8 core. Di seguito è riportato il codice che ho, Io apprezzo molto di aiuto con questa materia:
from multiprocessing import Process, Pool
def f():
general.runalg("qgis:dissolve", Input, False, 'LAYER_ID', Output)
if __name__ == '__main__':
with Pool(processes=8) as pool:
result = pool.apply_async(f)
La prima cosa che vorrei fare è sostituire il contenuto di f() con, ad esempio print, per restringere il problema. Se ciò dovesse accadere, c'è qualcosa di sbagliato nel tuo generale.runalg –
@TymoteuszPaul - Grazie, ci proverò. Il 'general.runal' funziona bene da solo, quindi la mia ipotesi è qualcosa a che fare con il metodo' Pool'. – Joseph
Inoltre hai accennato al fatto che stai scrivendo questo per python3, eppure stai usando la stampa in modo 2.7 che genera un errore. E potrebbe essere la causa di tutte le cose;) –