【发布时间】:2017-11-26 07:53:32
【问题描述】:
您好,我正在尝试从我的 pythons 脚本中获取文件源,例如 check.setup。 代码
import os
os.system("source /fullpathhere/check.setup")
它说找不到命令。令人惊讶的是,我可以直接从 shell 获取相同的文件。 check.setup 是 csh 文件。它正在采购其他 .csh 文件并设置一些环境变量我在这里看到的答案很少,但没有人可以解决这个问题。 PS:我尝试编写 bash 文件而不是 python。我也尝试使用 subprocess.Popen。问题仍然存在。 阿什什
【问题讨论】:
-
我不确定这是否正确(因此评论不回答),但我听说有时
source实际上是.的别名。看看. /fullpathhere/check.setup是否可以作为您的命令使用可能是值得的。 -
您机器上的默认外壳是什么?使用
echo $SHELL进行查看,并首先在您的控制台中直接在source /fullpath/check.setup上测试此命令以查看结果。 -
来源和 .是内置的 shell 命令,而不是你可以像这样执行的东西。但即使你可以,也没有任何意义,因为 os.system 会生成一个子 shell:在该子 shell 中设置的任何环境变量都会在命令返回时退出时立即丢失。
-
@Delioth 我试过 {. /fullpathhere/check.setup)。这是行不通的。同样的错误
-
@gkegoux 它的 tcsh。道歉,但我不明白你的建议。你想让我用 Tcsh 写脚本吗?我试过 bash 它给出了相同的结果。
标签: python bash python-2.7 shell tcsh