Привязки Python SVN в Windows Server 2008 x64 - PullRequest
4 голосов
/ 15 февраля 2011

Моя цель - использовать скрипты python в subversion \ tools, в частности, validate-extensions.py в этом случае.Я использую VisualSVN Server 2.15, построенный на Subversion 1.6.15, и на данный момент на компьютере установлен 32-битный Python 2.7.1.

Когда я настраивал ловушку, я получал ошибку, чтоМодуль SVN не может быть найден.Я установил последние привязки libsvn, которые смог найти (http://trac.edgewall.org/attachment/wiki/TracSubversion/svn-win32-1.6.15_py_2.7.zip из http://trac.edgewall.org/wiki/TracSubversion), но все еще не могу загрузить модуль svn. Если я запускаю ' из репозитория импорта svn ' изВ командной строке я получаю:

Файл "C: \ Python27 \ lib \ site-packages \ libsvn \ core.py", строка 21, в swig_import_helper _mod = imp.load_module ('_ core', fp, pathname, description) ImportError: сбой загрузки DLL: указанная процедура не найдена.

Я что-то упустил? Я также пробовал 64-разрядную версию Python27, но предварительно скомпилированные привязки SVN не делаютПохоже, он для этого не доступен, и я бы предпочел не проходить через все, что нужно для их создания.

Заранее благодарю за помощь.

1 Ответ

2 голосов
/ 23 февраля 2011

Я нашел ответ на этот вопрос в списке рассылки Subversion.Проблема в том, что привязки Python 2.7 SVN, предоставленные Trac, были созданы с использованием более старой версии DLL Apache, а именно libapr-1.dll, и они ссылаются на функцию с именем _apr_time_ansi_put @ 8.В более поздних версиях Apache, включая VisualSVN 2.1.5, libapr-1.dll более новая и функция была переименована в _apr_time_ansi_put @ 12.

Чтобы исправить это, я загрузил старые привязки Apache из http://subversion.tigris.org/files/documents/15/47914/svn-win32-1.6.6.zip,, переименованный в VisualSVN \ bin \ libapr-1.dll в libapr-1.dll.bak, скопировал более старый libapr-1.dll в папку VisualSVN \ bin и перезапустил службу.Больше никаких проблем, python 'из svn import core' работает нормально, а ловушка validate-extensions.py работает правильно.

...