Compilando pygtk com suporte ao python2.4 em sistema com dois pythons

1. Compilando pygtk com suporte ao python2.4 em sistema com dois pythons

Raniere Santos
raniashura

(usa Conectiva)

Enviado em 24/09/2010 - 23:10h

Olá.
Estou compilando pygtk-2.6.3, como "dependência" para o amsn-0.98.3 e ao dar o comando ./configure, ao final, tenho o seguinte erro:
-------------------------------------------
checking for a Python interpreter with version >= 2.3... python
checking for python... /usr/bin/python
checking for python version... 2.3
checking for python platform... linux-i386
checking for python script directory... ${prefix}/lib/python2.3/site-packages
checking for python extension module directory... ${exec_prefix}/lib/python2.3/site-packages
checking for headers required to compile python extensions... not found
-------------------------------------------
Não precisam me dizer que estão faltando os cabeçalhos do python, porque isso eu sei.
O meu problema é o seguinte:

Tenho instalado duas versões do python. A versão 2.3, original do sistema (Linux), e uma nova que compilei, a python 2.4.
Eu quero que o pygtk seja compilado com o python 2.4, mas ao dar o comando ./congure somente a versão 2.3 é encontrada.
O python 2.4 foi instalado com o seguinte comando: “make altinstall”, que faz com que seja possível instalar duas ou mais versões do python no mesmo sistema.
Este comando, altinstall, instala o mesmo conjunto de arquivos, como o "make install", exceto que ele não cria o hard link para "python<version>".
Sem este link, em /usr/bin, eu não consigo fazer o comando ./configure do pygtk encontrar o python2.4 e nem encontrar os fontes do python2.4.

Eu não estou seguro de que posso redirecionar o lik chamado python, em /usr/bin, para o binário do python2.4 (no momento ele direciona para o python2.3).
Mas, em testes, isso permite que o ./configure vá até o fim.
Alguém tem alguma dica de como posso manter as duas versões do python e fazer com que o pygtk tenha suporte ao python2.4?

Obrigado.


  


2. Re: Compilando pygtk com suporte ao python2.4 em sistema com dois pythons

Paulo Silva Filho
psfdeveloper

(usa Debian)

Enviado em 25/09/2010 - 05:13h

Caro Raniere,

antes de tentar compilar o pyGTK, teste as opções com "./configure --help". Geralmente existem algumas variáveis de sistema ou opções de configurações que podem ser setadas para definir qual python você deseja usar. Para o compilador c/c++, por exemplo, isso é praticamente mandatário.

Se isso não adiantar, você pode tentar alterar as sua variável PATH justamente antes de chamar o configure, fazendo assim:
$ PATH="caminho/para/seu/python:$PATH" ./configure

Se nada disso adiantar, você pode fazer um script shell que altera os links do python no seu sistema (use apenas links simbólicos, nada de hard links) e efetue o configure e o build. Apenas altere os links como root, todo o resto faça apenas como um usuário comum. Defina uma variável $PREFIX segura para colocar o seu pyGTK, como, por exemplo, dentro da sua $HOME/.pygtk. Teste a sua instalação alterando o PYTHON_LIB_PATH e o DYLD_LIBRARY_PATH para as suas bibliotecas pyGTK, chamando os seus scripts de teste com o python 2.4. Faça todas essas alterações dentro de scripts específicos, nada no .bashrc, .profile ou .bash_profile, senão você terá problemas enormes.

Não há uma solução simples para o seu problema, mas no Linux, em geral, é possível definir subsistemas dentro do sistema global que possam fazer o que precisamos. No meu sistema (um Mac OS X) eu tenho python2.5, python2.6, python2.7, python3.1, wxPython pra Mac OS X, wxPython para GTK (em X Window System) e tudo funciona muito bem. Entretanto, a configuração de tudo isso foi, como podemos dizer, sofrível. Depois que terminei fiz um backup do sistema inteiro para não ter que repetir tudo de novo. Mas tive de fazer penas uma única vez.

Geralmente, depois de compilado o sistema, ele vai funcionar corretamente, desde que você dê ao Python o PYTHON_LIB_PATH e o DYLD_LIBRARY_PATH adequado.

Abraços.

Paulo


3. Re: Compilando pygtk com suporte ao python2.4 em sistema com dois pythons

Paulo Silva Filho
psfdeveloper

(usa Debian)

Enviado em 25/09/2010 - 05:19h

Caro Raniere,

eu cometi um erro na minha esplicação. A variável de sistema que o Python usa para localizar as bibliotecas chama-se PYTHONPATH, não PYTHON_LIB_PATH. A variável de localização de bibliotecas dinâmicas está certa (DYLD_LIB_PATH). Nesse link: http://docs.python.org/using/cmdline.html#envvar-PYTHONPATH há um conjunto de variáveis de sistemas que podem lhe ajudar.

Abraços.


4. Re: Compilando pygtk com suporte ao python2.4 em sistema com dois pythons

Alberto Federman Neto.
albfneto

(usa openSUSE)

Enviado em 25/09/2010 - 09:50h

é conectiva?

o problema é instalar um python para um amsn novo. Não seria mais fácil para vc usar uma distro mais recente, atual?
uma dica... se vc usar um Gentoo like, como sabayon, toorox, librix, nos gentoos, vc pode ter vários python,por exemplo e depois
trocar com

sudo eselect python set numero do python que quer

muitos pacotes novos, precisam de bibliotecas novas, de dependências novas,porisso ue sugeri para vc usar um linux atual.
o Mandriva 2010.1, o sucessor do Conectiva, é muito bom, eu gosto.


5. Re: Compilando pygtk com suporte ao python2.4 em sistema com dois pythons

Raniere Santos
raniashura

(usa Conectiva)

Enviado em 07/10/2010 - 23:19h

Olá psfdeveloper e albfneto. Desculpem a demora para responder as postagens de vocês e obrigado por responderem ao meu tópico.
Eu gostei das sua dicas psfdeveloper, e até tentei por em prática mas acabei achando mais simples atualizar o pacote da minha distro para a versão mais nova que eu preciso. Isso acaba gerando algumas dependência com alguns outros pacotes, mas como eles são de programas que eu não uso, eu os desinstalei, resolvendo o problema (caso eu venha a precisar deles depois, posso recompilá-los com suporte a nova versão do Python).
Não irei marcar este tópico como resolvido, pois não pude fazer exatamente como eu perguntei aqui, mas fiz a compilação do pygtk sem problemas.

Obrigado pela sua dica albfneto. Eu já testei o Mandriva e sinceramente não gostei muito. Para mim parecia mais um Mandrake que um Conectiva. O Mandraque era uma boa distribuição também, então não vou desmerecer o Mandriva, mas como eu me adaptei (e me acostumei) muito ao Conectiva, achei mais interessante continuar com ele. O meu Conectiva, aliás, não tem mais muito do Conectiva original, já está bastante "mexido". Já atualizei muita coisa e o motivo de eu o manter é mais ou menos esse mesmo - eu quero atualizá-lo e a partir dele criar uma distro para mim, "com a minha cara", digamos...
Até.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts