2012-05-14 1 views
6

В Subversion, documentation есть пример использования Subversion из PythonPython 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 

Итак, как мне установить эту библиотеку?

+1

Разве это немного странно, что он жалуется на 'svn.core' но не о' svn.fs' (последний входит в список импорта)? – NPE

+1

Вы поймали меня, я скопировал и вставил ошибку из запуска 'import svn.core' в интерактивном приглашении –

ответ

9

Библиотека, на которую ссылается данная документация, представляет собой обертки на основе SWIG, которые строят и отправляют с Subversion. Таким образом - если пакет вашей операционной системы - subversion, ищите пакет subversion-python для отправки вместе с ним. Если вы создаете subversion из исходного кода, вам нужно использовать опцию конфигурации --with-python для привязок, которые будут созданы вместе.

Альтернативой (с совершенно другим API) является the 3rd-party wrapper pysvn. Они лучше документированы и более просты в использовании, но также менее эффективны с точки зрения производительности во время выполнения (они не реализуют все возможности повторного использования соединений и такие недокументированные «официальные» привязки).

+0

Увы, моя ОС - это Windows прямо сейчас, у нее нет диспетчера пакетов. Я рад использовать 'pysvn', если вы можете связать меня с документацией. –

+0

@MattHickford Обновлено со ссылкой на pysvn. –

+1

Спасибо, что неуловимая документация http://pysvn.tigris.org/docs/pysvn_prog_guide.html http://pysvn.tigris.org/docs/pysvn_prog_ref.html –

2

Для того, чтобы импортировать классы, вам необходимо установить subversion-python.

В моем случае (Fedora)

sudo yum install subversion-python 

Apt-получить должны иметь более или менее то же самое

 Смежные вопросы

  • Нет связанных вопросов^_^