【问题标题】:use setenv in a python subprocess在 python 子进程中使用 setenv
【发布时间】:2015-02-03 04:01:00
【问题描述】:

我有一个程序,我必须使用 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 变量设置不正确。那么我该怎么做呢

【问题讨论】:

    标签: python shell subprocess


    【解决方案1】:

    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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-22
      • 2011-11-21
      • 1970-01-01
      • 2020-03-28
      • 1970-01-01
      • 2012-03-17
      • 1970-01-01
      相关资源
      最近更新 更多