multiprocessing AttributeError-Modulobjekt hat kein Attribut '__path __'

Ich habe ein langes Skript, das am Ende eine Funktion für alle Elemente einer riesigen Liste ausführen muss, was viel Zeit in Anspruch nimmt, zum Beispiel:

input_a= [1,2,3,4] # a lengthy computation on some data
print('test.1') # for testing how the script runs
input_b= [5,6,7,8]  # some other computation
print('test.2')

def input_analyzer(item_a): # analyzing item_a using input_a and input_b
     return(item_a * input_a[0]*input_b[2])

from multiprocessing import Pool
def analyzer_final(input_list):
    pool=Pool(7)
    result=pool.map(input_analyzer, input_list)
    return(result)

my_list= [10,20,30,40,1,2,2,3,4,5,6,7,8,9,90,1,2,3] # a huge list of inputs

if __name__=='__main__':
        result_final=analyzer_final(my_list)
        print(result_final)
    return(result)

die Ausgabe dieses Codes variiert von Lauf zu Lauf, aber was alle Läufe gemeinsam haben, ist, dass mehrere das gesamte Skript ausführen. Wenn Sie 7 als Pool zuweisen, wird das gesamte Skript anscheinend ungefähr achtmal ausgeführt!

im nicht sicher, ob ich das Konzept des Multiprozesses gut verstanden habe, aber ich dachte, was es tun sollte, ist nur die Funktion 'input_analyzer' mit mehreren CPUs auszuführen und nicht das ganze Skript mehrmals auszuführen. im Falle meines echten Codes ist es so lang und es gibt mir einen seltsamen Fehler:

ohne Verwendung von Multiprocessing Ich führe diesen Code gut aus, ich weiß nicht, was ich hier falsch mache, insbesondere mit Fehler "AttributeError-Modul-Objekt hat kein Attribut"Pfa '"Ich bedanke mich für jede Hilfe.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage