J'essaie d'utiliser svnmerge.py pour fusionner certains fichiers. Sous le capot, il utilise python, et quand je l'utilise, je reçois une erreur - "Le système ne trouve pas le fichier spécifié". Les collègues au travail exécutent la même version de svnmerge.py, et de python (2.5.2, en particulier r252: 60911) sans problème."Le système ne trouve pas le fichier spécifié" lors de l'appel du sous-processus.Popen en python
J'ai trouvé this link, qui décrit mon problème. Essayer ce qui était il décrit, je confirme Python pourrait trouver svn (il est dans mon chemin):
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'
En regardant le code svnmerge.py, cependant, j'ai remarqué pour les versions de Python 2.4 et plus, il est à la suite d'une exécution différente chemin. Plutôt que d'appeler os.popen4(), il utilise subprocess.Popen(). Essayer qui reproduit l'erreur:
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 >>>
Pour l'instant, je l'ai commenté le code spécifique de 2,4 et plus, mais je voudrais trouver une solution appropriée.
Si ce n'est pas évident, je suis un débutant python complet, mais google n'a pas aidé. Des pointeurs?