繁体   English   中英

使用Python在PATH上执行命令

[英]Execute a command on the PATH using Python

在GNU / Linux系统中的Windows系统中,我的PATH上有DVCS Mercurial。 如果我在GNU / Linux中打开一个Bash shell,我可以执行hg(Mercurial命令),如果我在Windows中打开一个命令提示符,也是如此。

我想执行hg并检查退出状态并捕获输出。 我知道子进程模块和check_output。 但我无法使用我的PATH。 我宁愿不对路径进行硬编码,因为只要你的路径上有Mercurial,我希望脚本能够正常工作。

一个例子将不胜感激。

节日快乐!

如果你的路径中已经有hg ,那么在调用subprocess不需要任何特殊的东西,因为你应该得到相同的环境。

无论如何,如果要将PATH环境变量显式添加到子进程,可以执行以下操作:

env = os.environ.copy()
env['PATH'] = <whatever you need here>
subprocess.Popen(<hg command>, env=env)

此代码复制您从shell获取的环境并覆盖PATH变量。 如果您要使用相同的env字典来运行其他命令,则可能需要附加到PATH

没有必要复制整个环境,但这可以防止您可能遇到的其他问题,因为缺少其他环境变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM