6

在 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)

当我运行此代码时,出现导入错误:

$ 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

那么,如何安装这个库呢?

4

2 回答 2

9

本文档引用的库是基于 SWIG 的包装器,它与 Subversion 一起构建和发布。因此 - 如果您的操作系统的软件包是subversion,请寻找subversion-python与它一起发布的软件包。如果您从源代码构建颠覆,您将需要使用--with-python配置选项来构建绑定。

另一种选择(使用完全不同的 API)是3rd-party wrapperpysvn。这些文档有更好的文档并且更易于使用,但在运行时性能方面效率也较低(它们没有实现所有连接重用功能以及文档不足的“官方”绑定等)。

于 2012-05-14T13:09:08.660 回答
2

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

就我而言(Fedora)

sudo yum install subversion-python

apt-get 应该或多或少相同

于 2013-04-13T20:34:19.143 回答