Posso recompilar o python com uma versão mais antiga do gcc no ubuntu 18.04?

1

Ontem, atualizei meu sistema operacional do ubuntu 16.04 para 18.04.

Desde então, um dos meus módulos python (no python 2.7) não funciona mais. Tentando importá-lo, ocorreu um erro.

Este módulo usa código fortran com f2py, então tentei update-alternativesvoltar ao gcc-5 e gfotran-5 antes de fazê-lo novamente.

Até certo ponto, isso melhorou a situação, já que o python agora aceita importar o módulo. No entanto, ele ainda não funciona quando tento usá-lo, lançando erros que começam com:

 capi_return is NULL
 Call-back "some_routine" failed.

Encorajado por esse progresso aparente, quero ver se o erro restante se deve a uma incompatibilidade entre as versões do compilador usadas para criar o módulo e o próprio python. De fato, o python foi compilado com o gcc 7.3.

É possível recompilar o python 2.7 com o gcc-5?

O que eu tentei: Depois de mudar para versões mais antigas do compilador, entrei no modo de console e fiz:

 sudo apt-get install --reinstall python

Mas o python ainda diz que foi compilado com o gcc 7.3.

Outra coisa poderia ter mudado entre as duas versões do sistema operacional que quebraram o módulo?

Quero enfatizar que não escrevi o módulo pessoalmente e que funcionou bem antes da atualização do sistema operacional.

Agradecemos antecipadamente por suas sugestões :)

Antoine
fonte
Para sua informação, aptnão compila programas da fonte, instala pacotes pré-compilados.
gronostaj
1
Você precisaria encontrar o código fonte do python e recompilar "manualmente". Mas o problema provavelmente é um problema da versão python ou de alguma biblioteca de tempo de execução. Por que você não atualiza o módulo?
Xenoid # 5/18

Respostas:

0

Isso ocorre porque o Ubuntu 18.04 não vem com o Python2. Ele vem com o Python3 por padrão. Você pode instalar facilmente o python2 ao lado do python3. Então seus módulos funcionarão novamente.

Você não precisa compilar nada. Basta instalar o python 2:

sudo apt-get install python2.7

Você pode verificar qual versão é qual usando o argumento version:

root@server:~/PycharmProjects$ python2 --version
Python 2.7.12
root@server:~/PycharmProjects$ python3 --version
Python 3.5.2
kittyboo
fonte