私はIPythonの並列ツールを試してみるのに問題があります。それが必要としてipythonとのPythonネームスペースの問題
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
戻り[42、42、42]:その後、次のコードは正常に動作
ipcluster start -n 3
:私は私のpythonエンジンを起動します。 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
をしてみてください次:
[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ドン:
from dop import dop
ack = dop(27)
print ack
私は各エンジンからエラーが出ますそれを取得...私は別のファイルに関数を配置し、それをインポートすることはできませんなぜですか?