Estoy empezando a experimentar con las herramientas paralelas de IPython y tengo un problema. Empiezo mis motores de pitón con:Problemas de espacio de nombres de Python con ipython parallel
ipcluster start -n 3
continuación, el código siguiente funciona bien:
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
vuelve [42, 42, 42] como debería. Pero si rompo el código en archivos diferentes: 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
y aplica los siguientes:
from dop import dop
ack = dop(27)
print ack
recibo errores de cada 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
Pongo Lo entiendo ... ¿por qué no puedo poner la función en un archivo diferente e importarlo?