Tôi đang bắt đầu thử nghiệm với các công cụ song song IPython và gặp sự cố. Tôi bắt đầu lên cơ python của tôi với:Các vấn đề về không gian tên Python với ipython song song
ipcluster start -n 3
Sau đó, đoạn mã sau chạy tốt:
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
lợi nhuận [42, 42, 42] như nó phải. Nhưng nếu tôi phá vỡ các mã vào file khác nhau: 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
và hãy thử như sau:
from dop import dop
ack = dop(27)
print ack
tôi nhận được lỗi từ mỗi động cơ:
[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
tôi don Không hiểu ... tại sao tôi không thể đặt hàm vào một tệp khác và nhập nó?