Как мне включить и связать pysvn с моим скриптом на python? - PullRequest
1 голос
/ 27 июля 2011

Я работаю над инструментом, который использует pysvn.Предыдущий разработчик этого инструмента включил в него pysvn1.4, чтобы его можно было использовать на любом компьютере, на котором установлен python, без необходимости загружать или устанавливать pysvn.

Я хотел бы обновить инструмент для использования pysvn1.6.

На данный момент я установил pysvn1.6 на мою машину и переместил папку pysvn из моего каталога / usr / lib / python / site-package / pysvn в каталог моих исходных файлов.Кажется, так делал предыдущий автор.

Текущая структура файловой системы выглядит следующим образом:

assorted.py files
assorted.pyc files
pysvn folder that includes old version of pysvn
    __init__.py
    __init__.pyc
    __pysvn.so

Однако, когда я запускаю программу, я получаю эту ошибку:

Traceback (most recent call last):
  File "slocmine.py", line 195, in ?
    sys.exit(main(sys.argv[0:]))
  File "slocmine.py", line 113, in main
    logjsonstr = pyslocd_svn_log.doit(svn, url)
  File "/users/users1/chindes/newsloc/svn/lib/python2.4/pyslocd_svn_log.py", line 114, in doit
    revision=pysvn_rev_head, depth=pysvn.depth.empty)
AttributeError: 'module' object has no attribute 'empty'

, которая возникает из этого (ранее действительный) код:

repoinfo = svn.info2(repoPathUrl,
    revision=pysvn_rev_head, depth=pysvn.depth.empty)

Это говорит о том, что я неправильно импортировал модуль, хотя могу ошибаться.

Редактировать: Похоже, у меня версия 1.6.2pysvn и subversion версии 1.6.15, которые явно не совместимы.

1 Ответ

3 голосов
/ 27 июля 2011

pysvn, безусловно, один из незнакомых модулей для сборки.Вот как я успешно построил и использовал pysvn.Переменная среды TARG установлена ​​в каталог установки Python.

cd ~
wget http://pysvn.barrys-emacs.org/source_kits/pysvn-1.7.5.tar.gz
tar zxvf pysvn-1.7.5.tar.gz
cd pysvn-1.7.5/Source
python setup.py backport
python setup.py configure --apr-inc-dir=/usr/include/apr-1
make
cd ../Tests
make
cd ../Sources
mkdir -p $TARG/lib/python2.7/site-packages/pysvn
cp pysvn/__init__.py $TARG/lib/python2.7/site-packages/pysvn
cp pysvn/_pysvn_2_7.so $TARG/lib/python2.7/site-packages/pysvn
cd ~

Если у вас все еще есть старый модуль, почему бы не попробовать запустить его снова, а добавить несколько отладочных операторов в то же место в файле,поднял исключение.Вы можете использовать diff, чтобы найти правильное место в контексте, так как код мог измениться.С другой стороны, вы можете просто попробовать последнюю версию (см. Скрипт выше), так как это может быть ошибка библиотеки.

...