[英]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.