2014-12-05 3 views
1

У меня есть программа, где я должен установить переменную окружения с помощью setenv, но я получаю сообщение об ошибке "/bin/sh: setenv command not found", но setenv - это встроенная команда оболочки, почему она не работает с python подпроцесс. Может ли один помочь мне с этимиспользовать setenv в подпроцессе python

Код я написал это:

def ansaunrel(self): 
     apat = ['setenv ',' ANSA_SRV ','srtia027,srtia028,srtia004'] 
     subprocess.Popen(apat,shell=True) 
     ansrun='/share/ansa/NOT_RELEASED/14.2.2/ansa64.sh' 
     subprocess.Popen(ansrun,shell=True) 

После установки переменной ENV я должен запускать программу оболочки, но программа не начала работы, как переменная окружать не установлена должным образом. Итак, как я могу это сделать

ответ

1

setenv является встроенным csh, а не встроенным bash; вы используете неправильную оболочку, если хотите запустить setenv.

Но не похоже, что вы хотите запустить setenv за то, что вы пытаетесь сделать. Если вы хотите установить среду для подпроцесса, используйте параметр env для POPEN:

env = dict(os.environ) 
env['ANSA_SRV'] = 'srtia027,srtia028,srtia004' 
subprocess.Popen(ansrun, shell=True, env=env) 
+0

я постараюсь это спасибо – ayaan

+0

спасибо, что работал – ayaan