Ich versuche, svnmerge.py zu verwenden, um einige Dateien zusammenzuführen. Unter der Haube verwendet es Python, und wenn ich es benutze, erhalte ich einen Fehler - "Das System kann die angegebene Datei nicht finden". Kollegen bei der Arbeit führen die gleiche Version von svnmerge.py und von Python (2.5.2, speziell r252: 60911) ohne ein Problem."Das System kann die angegebene Datei nicht finden" beim Aufrufen von Subprozess.Popen in Python
Ich fand this link, die mein Problem beschreibt. Der Versuch, was dort skizziert wurde, bestätigte ich Python könnte SVN (es ist in meinem Weg) finden:
P:\>python Python 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import os >>> i,k = os.popen4("svn --version") >>> i.close() >>> k.readline() 'svn, version 1.4.2 (r22196)\n'
Mit Blick auf dem svnmerge.py Code, bemerkte ich jedoch für Python-Versionen 2.4 und höher wurde im Anschluss an eine andere Ausführung Pfad. Anstatt os.popen4() aufzurufen, verwendet es subprocess.Popen(). Der Versuch, dass der Fehler reproduziert:
C:\>python Python 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import subprocess >>> p = subprocess.Popen("svn --version", stdout=subprocess.PIPE, >>> close_fds=False, stderr=subprocess.PIPE) Traceback (most recent call last): File "", line 1, in File "C:\Python25\lib\subprocess.py", line 594, in __init__ errread, errwrite) File "C:\Python25\lib\subprocess.py", line 816, in _execute_child startupinfo) WindowsError: [Error 2] The system cannot find the file specified >>>
Vorerst habe ich die 2,4-und höheren spezifischen Code kommentiert, aber ich möchte eine angemessene Lösung zu finden.
Wenn es nicht offensichtlich ist, bin ich ein kompletter Python-Neuling, aber Google hat nicht geholfen. Irgendwelche Zeiger?