python运行csh命令

时间:2016-02-22 02:18:20

标签: python csh

最近,我想使用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时,它显示文件已经在屏幕上显示,但事实证明我必须在命令行上键入自己。

我怎么能解决这些问题?任何人都可以帮我这个吗?

1 个答案:

答案 0 :(得分:2)

您正在创建一个新的csh shell作为子进程,然后在该shell中运行命令,然后终止。这些命令不会运行或影响运行Python的父shell。当您自己运行命令时,它们会影响当前的shell。

如果您需要在Python终止后将这些设置保留在当前shell中,那么通常最好的选择是source setup.csh,而不是将其放在Python脚本中。如果Python脚本的其他子进程需要您的环境变量,则可以更改os.environ