Estoy tratando de usar svnmerge.py para combinar algunos archivos. Bajo el capó usa python, y cuando lo uso me sale un error: "El sistema no puede encontrar el archivo especificado". Los colegas en el trabajo ejecutan la misma versión de svnmerge.py, y de python (2.5.2, específicamente r252: 60911) sin problemas."El sistema no puede encontrar el archivo especificado" al invocar subproceso.Popen en python
Encontré this link, que describe mi problema. Tratando lo que se describe allí, me confirmaron Python pudo encontrar SVN (lo llevo en la ruta):
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'
Si examina el código svnmerge.py, sin embargo, me di cuenta para las versiones 2.4 y superiores pitón fue a raíz de una ejecución diferente camino. En lugar de invocar os.popen4() usa subprocess.Popen(). Tratando que reproduce el error:
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 >>>
Por ahora, he comentado a cabo el-y-2,4 superior código específico, pero me gustaría encontrar una solución adecuada.
Si no es obvio, soy un principiante completo de Python, pero Google no me ha ayudado. ¿Alguna sugerencia?