2013-09-13 2 views
0

У меня есть проблемы с пространством имен в простой программе Python: может кто-нибудь мне точку в правильном направлениипитон вопрос parallell namspace

import numpy as np 
import simple_sim 
from IPython.parallel import Client 

prescale_steps = np.linspace(0.5, 1.5, 101) 
val = [] 

c = Client() 
dview = c[:] 
dview.execute('import simple_sim') 
dview.execute('from numpy import *') 
dview['prescale_steps'] = prescale_steps 
dview['val'] = val 

detuning_steps = np.linspace(-11,11,101) 


def fid(det): 
    for p in prescale_steps: 
     tlist, ret = simple_sim.simple_simulation(pulse_file='/home/andreas/Dropbox/puls25p8gn15map.mat', pulse_length=0.5, gamma=0, detuning=det, prescale=p) 
     val.append(np.array([d,p,ret[-1]])) 
    return val 



lview = c.load_balanced_view() 
res = lview.map(fid, detuning_steps) 
a = res.get() 
a = np.asarray(a) 

всегда поднимает ошибка: global name 'simple_sim' is not defined, хотя оно должно быть определенно не должна Это?

+1

Какова полная трассировка исключения? –

+0

в строке 'dview.execute ('import simple_sim')' 'NameError: глобальное имя 'simple_sim' не определен' четыре раза для каждого ядра – wa4557

ответ

2

Убедитесь, что simple_sim находится на пути к вашим машинам ipython, а не только вашей оболочке ipython.

I.e. если simple_sim.py в ~/mydir/, вам необходимо запустить ipcluster start --n=4 в ~/mydir/ или у вас есть ~/mydir в вашем $PYTHON_PATH для оболочки, работающей ipcluster.

+0

да, спасибо. Глупый я... – wa4557

1

Не на 100% уверен, но может быть, что simple_sim не входит в пакеты сайта или в ту же папку, что и dview. Другими словами, dview can not найдет ваш модуль simple_sim и, следовательно, выдает ошибку. Однако, если это не так, я не уверен, что порождает эту ошибку.

Смежные вопросы