Python Subversion包装器库

时间:2012-05-14 11:31:24

标签: python svn easy-install

在Subversion的documentation中有一个使用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)

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

$ 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

这意味着我错过了库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

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

2 个答案:

答案 0 :(得分:9)

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

替代方案(具有完全不同的API)是the 3rd-party wrapper pysvn。这些文档记录更好,更易于使用,但在运行时性能方面效率也较低(它们没有实现所有连接重用功能以及未记录的“官方”绑定)。

答案 1 :(得分:2)

您需要安装subversion-python才能导入类。

在我的情况下(Fedora)

sudo yum install subversion-python

Apt-get应该或多或少相同