svnmerge.py を使用していくつかのファイルをマージしようとしています。内部では python を使用しており、使用するとエラーが発生します - 「システムは指定されたファイルを見つけることができません」。職場の同僚は、同じバージョンの svnmerge.py と python (2.5.2、具体的には r252:60911) を問題なく実行しています。
私の問題を説明するこのリンクを見つけました。そこで概説されていることを試して、Pythonがsvnを見つけることができることを確認しました(それは私のパスにあります):
P:\>パイソン Python 2.5.2 (r252:60911、2008 年 2 月 21 日、13:11:45) [MSC v.1310 32 ビット (Intel)] (win32) 詳細については、「ヘルプ」、「著作権」、「クレジット」、または「ライセンス」と入力してください。 >>> OSをインポート >>> i,k = os.popen4("svn --version") >>> i.close() >>> k.readline() 'svn、バージョン 1.4.2 (r22196)\n'
ただし、svnmerge.py コードを見ると、python バージョン 2.4 以降では、別の実行パスをたどっていることに気付きました。os.popen4() を呼び出す代わりに、subprocess.Popen() を使用します。エラーを再現しようとしています:
C:\>パイソン Python 2.5.2 (r252:60911、2008 年 2 月 21 日、13:11:45) [MSC v.1310 32 ビット (Intel)] win32情報。 >>> サブプロセスのインポート >>> p = subprocess.Popen("svn --version", stdout=subprocess.PIPE, >>> close_fds=False、stderr=subprocess.PIPE) トレースバック (最新の呼び出しが最後): ファイル ""、1 行目、 ファイル「C:\Python25\lib\subprocess.py」、594 行目、__init__ 内 エラー、エラー書き込み) ファイル「C:\Python25\lib\subprocess.py」、816 行目、_execute_child 内 起動情報) WindowsError: [エラー 2] 指定されたファイルが見つかりません >>>
今のところ、2.4 以降固有のコードはコメントアウトしていますが、適切な解決策を見つけたいと考えています。
明らかでない場合、私は完全な Python 初心者ですが、Google は役に立ちませんでした。ポインタはありますか?