svn.remote.RemoteClient.info:FileNotFoundError:[WinError 2]系统找不到指定的文件

5

我正在尝试使用以下Python代码在Windows上连接SVN远程客户端并获取最新提交的版本:

r = svn.remote.RemoteClient(svnPath)
revNum = str(r.info().get("commit#revision"))

我遇到了以下错误:
在 \n revNum = str(r.info().get("commit#revision"))\n', ' File "C:\Program Files\Python36\lib\site-packages\svn-0.3.45-py3.6.egg\svn\common.py", line 75, in info\n do_combine=True)\n', ' File "C:\Program Files\Python36\lib\site-packages\svn-0.3.45-py3.6.egg\svn\common.py", line 54, in run_command\n return self.external_command(cmd, environment=self.env, **kwargs)\n', ' File "C:\Program Files\Python36\lib\site-packages\svn-0.3.45-py3.6.egg\svn\common_base.py", line 25, in external_command\n env=env)\n', ' File "C:\Program Files\Python36\lib\subprocess.py", line 709, in __init\n
restore_signals, start_new_session)\n', ' File "C:\Program Files\Python36\lib\subprocess.py", line 997, in _execute_child\n
startupinfo)\n']: [WinError 2] 系统找不到指定的文件
我尝试打印“svnpath”和“r”以确保它们正确。我得到了预期的正确远程服务器路径(假设为“remote_path”)对于“svnpath”,并且对于“r”为< SVN(REMOTE) remote_path>
远程SVN需要凭据(UID和PWD)才能访问。但是,我使用此脚本运行的计算机已经设置了正确的凭据的SVN。我是否仍然需要在python脚本中指定显式凭据来访问?如果是这样,该如何操作?或者我需要额外的python包来使用SVN?
请帮忙...
2个回答

1

我曾经遇到过同样的错误,通过安装 SVN 命令行并将其路径添加到 PATH 环境变量中解决了这个问题。

如果你使用的是 Windows 操作系统,可以在安装 Tortoise SVN 时安装命令行可执行文件,但默认情况下相应的选项未被勾选(参见 ccpizza's answer)。


0

你们可能已经解决了问题,但看看代码可能会有所帮助。

RemoteClient类继承自CommonClient,它的开头是这样的:

class CommonClient(svn.common_base.CommonBase):
    def __init__(self, url_or_path, type_, username=None, password=None, 
                 svn_filepath='svn', trust_cert=None, env={}, *args, **kwargs):
        super(CommonClient, self).__init__(*args, **kwargs)
   ...

因此,以下内容应该可以正常工作:

import svn.remote

url = "http://server.com:8080/svn/SuperRepo/branches/tool-r20"

client = svn.remote.RemoteClient(url, username="toto", password="SuperPassword")
print(client.info())

无法工作。错误,"[WinError 2]系统找不到指定的文件"。 - Vineesh TP
请再确认一下:您确定该路径存在吗? - Jean-Francois T.
路径已存在。我可以通过Tortoise SVN客户端进行检出。 - Vineesh TP

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接