最近,我想使用python脚本在linux中设置环境。这是我的代码的一行:
p = subprocess.call(['/bin/csh', '-c', "source setup.csh"])
我的setup.csh文件如下:
add questa10.2b
add ds5-2013.06
setenv MODELSIM modelsim.ini
但是当我运行我的python时,它显示文件已经在屏幕上显示,但事实证明我必须在命令行上键入自己。
我怎么能解决这些问题?任何人都可以帮我这个吗?
答案 0 :(得分:2)
您正在创建一个新的csh
shell作为子进程,然后在该shell中运行命令,然后终止。这些命令不会运行或影响运行Python的父shell。当您自己运行命令时,它们会影响当前的shell。
如果您需要在Python终止后将这些设置保留在当前shell中,那么通常最好的选择是source setup.csh
,而不是将其放在Python脚本中。如果Python脚本的其他子进程需要您的环境变量,则可以更改os.environ
。