Назад | Перейти на главную страницу

ImportError: нет модуля с именем svn.core Python Traceback

Я работаю над настройкой сервера Subversion в одной из своих сред, используя RHEL 8 Apache 2.4 Subversion 1.10.6 Python 2.7 Viewvc 1.2.1

Установка Apache и Subversion прошла успешно. Далее я пытаюсь использовать WebSVN как Viewvc.

ViewVC был успешно установлен и интегрирован с Python. Просматривая страницу viewvc.cgi, я вижу ее.

Пока настраиваю viewvc для svnrepositories. Я получаю сообщение об ошибке ImportError: нет модуля с именем svn.core Python Traceback

Я установил модуль python svn subversion-python. Но все еще возникает проблема.

Любая помощь будет оценена по достоинству.

Поскольку RedHat не предоставляет пакет привязок Subversion SWIG Python [1], который необходим для поддержки ViewVC Subversion, вам понадобится сторонний пакет [2], например Collabnet или WANdisco, или соберите его из исходников.

[1] https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/8.0_release_notes/rhel-8_0_0_release#platform-tools

[2] https://subversion.apache.org/packages.html#redhat

Похоже, что RHEL 8 в конечном итоге будет поддерживать SVN 1.14: https://bugzilla.redhat.com/show_bug.cgi?id=1844947

Коджи также показывает попытки сборки, которые подтверждают это: https://koji.fedoraproject.org/koji/packageinfo?packageID=752

Я не уверен, что вы когда-нибудь смогли это исправить. Мне поручили аналогичную задачу по перемещению нашего подрывного сервера (в настоящее время размещенного на машине Ubuntu LTS) на сервер Centos 8. Это одна из наших устаревших услуг. Однако, как и вы, я просто не мог заставить это работать. Коротко говоря, я отказался от этого и сказал пользователям, что им нужно перейти на git.

Вот что я сделал, чтобы заставить его работать, для тех, кто может найти этот пост. Первая проблема, конечно, в том, что viewvc не упакован для Centos (RHEL) 8, в том числе и в EPEL. Итак, я зашел в исходники на github https://github.com/viewvc/viewvc/ и скачал последнюю версию (на тот момент 1.2.1). Я извлек, прочитал УСТАНОВКУ и начал. Я применил сценарий ./viewvc-install, который, похоже, работал без ошибок. Я обновил viewvc.conf с нашими настройками после просмотра и установил файл конфигурации в apache. Все это, казалось, сработало, и я смог получить базовое выполнение viewvc. Однако, как и вы, я обнаружил, что ImportError: Нет модуля с именем svn.core, когда я пытался просмотреть репозиторий Subversion. Для ветки выпуска 1.2 требуется python2, поэтому я установил его через dnf. Я прочитал совет в файле INSTALL и попытался импортировать svn.core. Однако похоже, что в основных репозиториях centos, epel или pypi для этих привязок (которые, по-видимому, являются привязками SWIG) нет упаковки. Меня воодушевило то, что я установил svn через pip2 и смог импортировать svn, но не svn.core. Похоже, это не тот пакет svn, который ищет viewvc. Когда я нашел эту страницу, мне показалось, что я получил подтверждение того, что мне действительно нужно было участвовать в проекте Subversion: https://cwiki.apache.org/confluence/display/SVN/Subversion%27s+Python+3+Support+Status в котором перечислены все файлы Python в Subversion и подтверждено, что существует core.py (subversion / bindings / swig / python / svn / core.py). Я не уверен, почему он не упакован или где его найти и установить. Я действительно не был заинтересован в попытках получить исходный код Subversion и попытаться распространить его самостоятельно, это будет второй пакет (помимо viewvc), который мне затем потребуется регулярно проверять на наличие проблем с безопасностью и обновлять вручную. (Вот для чего нужен менеджер пакетов!)

Однако, увидев эту страницу о статусе поддержки python3, я решил снова взглянуть на viewvc и посмотреть, поддерживает ли он python3. Нашел проблему 138 (https://github.com/viewvc/viewvc/issues/138) и закрыли! Я думал, что теперь мне повезло. Похоже, что на момент публикации этого поста основная ветвь поддерживала python3 (viewvc) и скоро должна была быть выпущена как версия 1.3. Это казалось обнадеживающим. Я скачал мастер и установил его. Однако вскоре я понял, что Subversion должна быть на уровне 1.14 для поддержки python3 (который на момент написания еще не был выпущен, но на rc2). Несмотря на это, я счел почти невозможным, чтобы RHEL переустановил subversion до 1.14 за время существования RHEL 8 / Centos 8, что опять же означает больше ручных обновлений в течение всего срока службы сервера.

При этом я отказался от репозиториев subversion. Есть действительно хорошая программа svn2git. Для минимального веб-интерфейса git-web было просто установить и запустить, и он примерно эквивалентен viewvc. Это также поддерживаемый пакет (dnf install git-web). Если вам нужен немного более красивый интерфейс, GOGS (gogs.io) казался хорошим и не требовал установки внешней базы данных (можно просто использовать sqlite). Однако, похоже, он не упакован для RHEL / Centos / EPEL. Я собираюсь попробовать git-web, если нам не понадобится что-то более красивое.