Importieren von benutzerdefinierten Modulen in IPython.parallel-Engines mit sync_imports ()

8

Ich habe mit IPython.parallel herumgespielt und wollte einige eigene Module verwenden, aber ich konnte es nicht tun, wie auf das Kochbuch mit dview.sync_imports() . Das einzige, was für mich funktioniert hat, war etwas wie

%Vor%

und dann hauptsächlich nur zu

%Vor%

Der richtige Weg wäre meiner Meinung nach etwas wie

%Vor%

, aber dies wirft einen Fehler auf, der besagt, dass es kein Modul namens my_module gibt.

Also, was ist der richtige Weg, es mit dview.sync_imports() ??

zu machen?     
Alex S 02.09.2013, 09:42
quelle

1 Antwort

8

Das Problem besteht darin, dass Sie PYTHONPATH nur im lokalen Prozess ändern, auf dem der Client ausgeführt wird, und nicht in den Remote-Prozessen, die in ipcluster ausgeführt werden.

Sie können dieses Verhalten beobachten, wenn Sie den nächsten Code-Code ausführen:

%Vor%

Grundsätzlich müssen alle Module, die Sie mit sync_imports verwenden möchten, bereits in PYTHONPATH sein.

Wenn es nicht in PYTHONPATH ist, müssen Sie es zum Pfad in der Funktion hinzufügen, die Sie remote ausführen, und dann das Modul in die Funktion importieren.

    
Viktor Kerkez 02.09.2013, 10:14
quelle