使用Python在路径上执行命令

使用Python在路径上执行命令,python,python-2.7,subprocess,Python,Python 2.7,Subprocess,在GNU/Linux系统的Windows系统中,我的路径上有DVCS Mercurial。如果我在GNU/Linux中打开bashshell,我就可以执行hg(Mercurial命令),如果我在Windows中打开命令提示符,情况也是如此 我想执行hg并检查退出状态并捕获输出。我了解子流程模块并检查输出。但我无法让它使用我的路径。我不希望硬编码路径,因为我希望脚本能够工作,只要您的路径上有Mercurial 请举个例子,不胜感激 节日快乐 如果路径中已经有hg,那么对子流程的调用不需要任何特殊内

在GNU/Linux系统的Windows系统中,我的路径上有DVCS Mercurial。如果我在GNU/Linux中打开bashshell,我就可以执行hg(Mercurial命令),如果我在Windows中打开命令提示符,情况也是如此

我想执行hg并检查退出状态并捕获输出。我了解子流程模块并检查输出。但我无法让它使用我的路径。我不希望硬编码路径,因为我希望脚本能够工作,只要您的路径上有Mercurial

请举个例子,不胜感激


节日快乐

如果路径中已经有
hg
,那么对
子流程的调用不需要任何特殊内容,因为您应该得到相同的环境

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

env = os.environ.copy()
env['PATH'] = <whatever you need here>
subprocess.Popen(<hg command>, env=env)
env=os.environ.copy()
环境['PATH']=
subprocess.Popen(,env=env)
此代码复制从shell获得的环境,并覆盖
PATH
变量。如果要使用相同的
env
字典来运行其他命令,则可能需要附加到
PATH

不需要复制整个环境,但这将防止由于缺少其他环境变量而发生其他问题