Ich fange an, mit den IPython parallelen Tools zu experimentieren und ein Problem haben. Ich starte meine Python-Motoren mit:Python Namespace Probleme mit Ipython parallel
ipcluster start -n 3
dann der folgende Code läuft gut:
from IPython.parallel import Client
def dop(x):
rc = Client()
dview = rc[:]
dview.block=True
dview.execute('a = 5')
dview['b'] = 10
ack = dview.apply(lambda x: a+b+x, x)
return ack
ack = dop(27)
print ack
returns [42, 42, 42], wie es sollte. Aber wenn ich den Code in verschiedenen Dateien zu brechen: dop.py:
from IPython.parallel import Client
def dop(x):
rc = Client()
dview = rc[:]
dview.block=True
dview.execute('a = 5')
dview['b'] = 10
print dview['a']
ack = dview.apply(lambda x: a+b+x, x)
return ack
und versuchen Sie Folgendes:
from dop import dop
ack = dop(27)
print ack
bekomme ich Fehler von jedem Motor:
[0:apply]: NameError: global name 'a' is not defined
[1:apply]: NameError: global name 'a' is not defined
[2:apply]: NameError: global name 'a' is not defined
I don verstehe es nicht ... warum kann ich die Funktion nicht in eine andere Datei einfügen und importieren?