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

Установка rsvg lib при второй установке Python

У меня есть две установки python на моем сервере RHEL, одна с версией 2.4.x (это обычная установка RHEL, обновленная с использованием yum) и версии 2.6.x, которую я использую для Django, а также для обычных сценариев (устанавливается из исходников).

Я бы хотел, чтобы библиотека rsvg работала на Python 2.6.x. Он уже присутствует в Python 2.4.x и хранится здесь /usr/lib64/python2.4/site-packages/gtk-2.0/rsvg.so.

Моя вторая установка Python здесь /opt/python2.6.

В идеале я бы хотел сделать это без полной переустановки Python 2.6!

Обновить

Пытался установить весь пакет gnome-python-desktop и получил

checking for PYGTK... configure: error: Package requirements (pygtk-2.0 >= 2.4.0) were not met.

Серьезно, все, что мне нужно, это python-rsvg. Это должно быть возможно без установки всех пакетов в мире.

Обновление # 2

Я запустил это, чтобы получить, как я понимаю, необходимые зависимости:

$ yum install pygobject2 pygobject2-devel librsvg2 librsvg2-devel pygtk2 pygtk2-devel

Бег ./configure --disable-allbindings --enable-rsvg возвращается с сообщением, что единственный модуль, который будет построен, это metacity.

Обновление # 3

Попытка установить gnome-python-desktop, используя предоставленные параметры конфигурации. Бег make приводит к ошибке:

metacity.c: In function 'pymetacity_add_constants':
metacity.c:955: error: 'META_CURSOR_MOVE_WINDOW' undeclared (first use in this function)
metacity.c:955: error: (Each undeclared identifier is reported only once
metacity.c:955: error: for each function it appears in.)
metacity.c:956: error: 'META_CURSOR_RESIZE_WINDOW' undeclared (first use in this function)
make[2]: *** [metacity_la-metacity.lo] Error 1
make[2]: Leaving directory `/tmp/gnome-python-desktop-2.13.3/metacity'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/gnome-python-desktop-2.13.3'
make: *** [all] Error 2

Бег configure на pygobject 2.26.0 (последняя стабильная версия?):

checking for GLIB - version >= 2.22.4... no
*** Could not run GLIB test program, checking why...
*** The test program failed to compile or link. See the file config.log for the
*** exact error that occured. This usually means GLIB is incorrectly installed.
configure: error: maybe you want the pygobject-2-4 branch?

Бег make в glib 2.26.0:

/usr/bin/msgfmt -o test.mo ./de.po; \
    /bin/mkdir -p de/LC_MESSAGES; \
    cp -f test.mo de/LC_MESSAGES
./de.po:15: keyword "msgctxt" unknown
./de.po:15:8: parse error
/usr/bin/msgfmt: found 2 fatal errors
cp: cannot stat `test.mo': No such file or directory
make[4]: *** [test.mo] Error 1
make[4]: Leaving directory `/tmp/glib-2.26.0/gio/tests'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/tmp/glib-2.26.0/gio'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/tmp/glib-2.26.0/gio'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/glib-2.26.0'
make: *** [all] Error 2

Это довольно неприятно! Есть ли способ сделать это без установки всего?

export PYTHONPATH=/opt/python2.6
export PATH=/opt/python2.6/bin:$PATH

А потом configure / make / make install модуль python-rsvg (из gnome-python-desktop), и он должен просто работать.

Если вам нужен только модуль rsvg без остальных, вы можете использовать ./configure --disable-allbindings --enable-rsvg.

И убедитесь, что у вас есть librsvg2-devel пакет установлен, иначе модуль не будет собран независимо от того, сколько --enables вы укажете. :)

Обновить:

Ясно, что что-то не так на этапе обновления №2 выше, где ./configure говорит вам, что он делает что-то, кроме того, что он собирается делать. В частности, в справке по настройке упоминаются привязки метасильности как плохо обслуживаемые.

Я не совсем уверен, что не так - есть ли что-то полезное в (длинном) выводе configure? В качестве альтернативы вы можете попробовать использовать waf вместо configure / make. Бегать:

./waf configure --enable-modules=rsvg
./waf
./waf install

(Отмечая, что --disable-allbindings не требуется.)

Первая строка должна сказать вам, что будет построен только rsvg.

Дальнейшее обновление:

При таком подходе вам понадобятся pygtk и pycairo, встроенные в ваш /opt/python2.6 дерево. Это может быть причиной сбоя конфигурации.