2011-12-22 11 views
0

WindowsシステムのPATHにDVCS MercurialをそれぞれGNU/Linuxシステムにインストールしています。 GNU/LinuxでBashシェルを開くとhg(Mercurialコマンド)を実行できますが、Windowsでコマンドプロンプトを開くと同じことが起こります。Pythonを使用してPATH上でコマンドを実行

私はhgを実行し、終了ステータスをチェックして出力をキャプチャしたいと思います。私はサブプロセスモジュールとcheck_outputについて知っています。しかし、私はPATHを使用することができません。あなたのパス上にMercurialがある限り、スクリプトを動作させたいので、パスをハードコードしたくないのです。

例をお待ちしております。

ハッピーホリデー!

答えて

2

あなたのパスに既にhgがある場合は、同じ環境を使用する必要があるので、subprocessへの呼び出しで特別なことは必要ありません。あなたが明示的にサブプロセスにPATH環境変数を追加したい場合は、あなたがこれを行うことができますとにかく

、:

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

このコードをコピーし、あなたのシェルから取得し、PATH変数を上書きしている環境。同じenv辞書を使用して他のコマンドを実行する場合は、代わりにPATHに追加すると便利です。

環境全体をコピーする必要はありませんが、他の環境変数がないために発生する可能性のある他の問題を防ぐことができます。

関連する問題