Um den Importfehler loszuwerden, benennen Sie die Datei anders als multiprocessing.py, da der Dateiname nicht dem Modulnamen entsprechen sollte.
Sie können die Pool-Funktion nach einer Änderung des Dateinamens importieren und Ihr Code sollte auf Python3 funktionieren. Aber wenn Sie Python2 verwenden, wird der Code nicht funktionieren.
In Python 2.x und 3.0, 3.1 und 3.2, multiprocessing.Pool() Objekte sind keine Kontextmanager. Sie können sie nicht mit der Anweisung verwenden. Nur in Python 3.3 und höher können Sie sie als solche verwenden.
Aus dem Python 3 multiprocessing.Pool() Dokumentation:
New in version 3.3: Pool objects now support the context management protocol – see Context Manager Types. enter() returns the pool object, and exit() calls terminate().
Im Folgenden Code
from multiprocessing import Pool
def f(x):
return x*x
if __name__ == '__main__':
p = Pool(5)
print(p.map(f, [1, 2, 3]))
Ausgabe auf python2 arbeiten
[1, 4, 9]
Hinzufügen von Informationen über Ihr System und wie Sie Python installiert haben, könnte wirklich hilfreich sein. –
Was passiert, wenn Sie in einem neu gestarteten Python-Interpreter nur 'from multiprocessing import Pool' ausführen? –
Benennen Sie Ihre Module nicht wie andere Module, die Sie verwenden möchten. Sie importieren Ihr eigenes Modul anstelle des in der Standardbibliothek. – Goyo