我有一个程序,必须使用setenv设置环境变量,但是却收到一条错误消息,说"/bin/sh: setenv command not found"但setenv是内置的shell命令,为什么它不能与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变量后,我必须运行一个shell程序,但是由于environ变量的设置不正确,因此该程序无法启动。那我该怎么做

最佳答案

setenv是csh内置而不是bash内置;如果要运行setenv,则使用错误的Shell。

但是,您似乎不想为要执行的操作运行setenv。如果要为子进程设置环境,请使用env参数Popen:

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

关于python - 在python子进程中使用setenv,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27308167/

10-10 21:52