关于svn merge:调用子进程时,“系统找不到指定的文件”。在python中打开

关于svn merge:调用子进程时,“系统找不到指定的文件”。在python中打开

“The system cannot find the file specified” when invoking subprocess.Popen in python

我正在尝试使用svnmerge.py合并一些文件。 在后台,它使用python,当我使用它时,我得到一个错误-"系统找不到指定的文件"。 同事正在运行相同版本的svnmerge.py和python(2.5.2,特别是r252:60911),没有问题。

我找到了此链接,它描述了我的问题。 尝试在那里概述的内容,我确认Python可以找到svn(它在我的路径中):

1
2
3
4
5
6
7
8
9
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)\
'

不过,在查看svnmerge.py代码时,我注意到对于python 2.4及更高版本,它遵循的是不同的执行路径。 而不是调用
os.popen4()它使用subprocess.Popen()。 尝试重现该错误:

1
2
3
4
5
6
7
8
9
10
11
12
13
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
>>>

目前,我已经注释掉了2.4及更高版本的特定代码,但我想找到一个合适的解决方案。

如果不是很明显,我是一个完整的python新手,但是google并没有帮助。 有指针吗?


这是一个错误,请参见subprocess.Popen的文档。 要么需要一个"shell=True"选项,要么第一个参数需要一个序列['svn', '--version']。现在,Popen正在寻找一个名为" svn --version"的可执行文件。 找不到。

我不知道为什么它对您的同事仍然有效,如果他们运行的是相同的操作系统和版本的Python ... FWIW,它在Mac上给了我相同的错误消息,并且我提供了两种修复方法之一 。


推荐阅读

    金蝶担保机构业务管理系统

    金蝶担保机构业务管理系统,,1.金蝶财务软件怎么使用?软件使用方法 使用需要先登陆到数据库,可只导出V3数据或只导出最新年度数据。功能介绍

    wps如何合并章节

    wps如何合并章节,WPS教程,1.WPS表格如何实现单元格合并?WPS 表格在新版本中增加了“合并单元格”系列按钮,同时配有下拉菜单和快捷键。新增

    联想台式机怎么恢复出厂系统

    联想台式机怎么恢复出厂系统,所示,如下图,如所示:首先关闭计算机。然后在下一个接口中选择“引导设备优先级”输入新界面后,然后单击“是”

    鼠标不能拖动文件了

    鼠标不能拖动文件了,鼠标,拖动,本文目录鼠标不能拖动文件了电脑鼠标无法拖动软件图标了,怎么办鼠标不能滚动怎么调整电脑鼠标不能进行任何

    电脑系统城|电脑系统下载 win7

    电脑系统城|电脑系统下载 win7,电脑系统城,不少朋友在使用电脑时候,有时碰到电脑卡住,不能使用,很多人都会选择装机来解决。那么电脑装机软件