在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
那么,我该如何安装这个库?
答案 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应该或多或少相同