Python Subversion包装器库

Col*_*nic 6 python svn easy-install

在Subversion的文档中,有一个使用Python的Subversion的例子

#!/usr/bin/python
import svn.fs, svn.core, svn.repos

def crawl_filesystem_dir(root, directory):
    """Recursively crawl DIRECTORY under ROOT in the filesystem, and return a list of all the paths at or below DIRECTORY."""

    # Get the directory entries for DIRECTORY.
    entries = svn.fs.svn_fs_dir_entries(root, directory)
Run Code Online (Sandbox Code Playgroud)

当我运行此代码时,我收到导入错误:

$ python crawl.py
Traceback (most recent call last):
  File "crawl.py", line 7, in <module>
    import svn.fs, svn.core, svn.repos
ImportError: No module named svn.fs
Run Code Online (Sandbox Code Playgroud)

这意味着我错过了这个库svn.我试图安装包,但Python包管理器找不到它.

$ pip install svn
Downloading/unpacking svn
  Could not find any downloads that satisfy the requirement svn
No distributions at all found for svn
Run Code Online (Sandbox Code Playgroud)

那么,我该如何安装这个库?

Cha*_*ffy 9

本文档中提到的库是基于SWIG的包装器,它构建并随Subversion本身一起提供.因此 - 如果您的操作系统的软件包是subversion,请查找subversion-python与其一起发运的软件包.如果您正在从源代码构建subversion,那么您将需要使用--with-pythonconfigure选项来同时构建绑定.

另一种(具有完全不同的API)是第三方包装器pysvn.这些文档记录更好,更易于使用,但在运行时性能方面效率也较低(它们不实现所有连接重用功能以及未记录的"官方"绑定).