Instalando o rsvg lib na segunda instalação do Python

2

Eu tenho duas instalações de python no meu servidor RHEL, uma na versão 2.4.x (que é a instalação geral do RHEL, atualizada usando yum ) e uma versão 2.6.x que eu uso para o Django, bem como apenas scripting diário (instalado a partir da fonte).

Gostaria de ter a biblioteca rsvg funcionando para o Python 2.6.x. Já está presente para o Python 2.4.xe armazenado aqui /usr/lib64/python2.4/site-packages/gtk-2.0/rsvg.so .

Minha segunda instalação do python está aqui /opt/python2.6 .

Idealmente, eu gostaria de fazer isso sem ter que fazer uma reinstalação completa do Python 2.6!

Atualizar

Tentou instalar todo o pacote gnome-python-desktop e obteve

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

Sério, tudo que eu quero é python-rsvg. Deve ser possível sem instalar todos os pacotes no mundo.

Atualização nº 2

Eu executei isso para entender o que entendi como as dependências necessárias:

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

A execução de ./configure --disable-allbindings --enable-rsvg retorna com uma mensagem de que o único módulo a ser construído é metacity .

Atualização nº 3

Tentando instalar o gnome-python-desktop usando as opções de configuração fornecidas. A execução de make resulta em um erro:

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

Executando configure no pygobject 2.26.0 (versão estável mais recente?):

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?

Executando make no simplificado 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

Isso está ficando muito frustrante! Existe alguma maneira de fazer isso sem instalar tudo?

    
por Jordan Reiter 02.12.2010 / 22:03

1 resposta

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

E então configure / make / make install o módulo python-rsvg (do gnome-python-desktop), e ele deve funcionar.

Se você quiser apenas o módulo rsvg sem o resto, você pode usar ./configure --disable-allbindings --enable-rsvg .

E verifique se você tem o pacote librsvg2-devel instalado, senão o módulo não será compilado, não importa quantos - você possa fornecer. :)

Atualização:

É evidente que algo está errado no estágio de atualização 2 acima, onde ./configure diz que está fazendo algo diferente do que diz que vai acontecer. Particularmente, as ligações de metacidades são chamadas na configuração help como sendo mal conservadas.

Não tenho certeza do que está errado - há algo de útil na saída (longa) do configure? Como alternativa, você poderia tentar usar waf em vez de configure / make. Executar:

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

(Observando que --disable-allbindings não é necessário.)

A primeira linha deve dizer que apenas o rsvg será criado.

Outras atualizações:

Com essa abordagem, você precisará do pygtk e do pycairo integrados em sua árvore /opt/python2.6 . Pode ser por isso que o configure está falhando.

    
por 06.12.2010 / 00:20