我在tcshell中工作,并使用setenv foo bar
等命令设置环境脚本。我使用命令source set_env.sh
运行此脚本,然后在设置环境时,运行编译命令make my_ target...
我希望通过调用subprocess.Popen
甚至os.system
从Python执行整个过程来实现自动化。问题是:
source
。我的假设是,/bin/bashshell已打开。如何强制Python打开/bin/tcsh李>make my_ target...
)保留已更改的环境设置李>
如果在Python中使用
subprocess
包,那么默认情况下它不会运行shell,它只会启动一个进程(不使用shell)。您可以添加shell=True
,但这对您没有多大好处,因为环境变量仅为当前进程设置,并且不会发送回父进程Python启动
tcsh
子进程,子进程不能影响父进程解决方案是让脚本打印出环境变量,然后用Python解析环境变量的输出
因此,如果脚本打印出如下内容:
然后在Python中,按照如下方式执行操作:
相关问题 更多 >
编程相关推荐