Configure corretamente o python 2.7 após a instalação, de preferência substituindo o python 2.6 existente

0

Estou literalmente tentando meio dia para atualizar meu python de 2.6 para 2.7 sem sorte até agora.
A distribuição do Linux é: Red Hat Enterprise Linux Server release 6.5 (Santiago) , e veio com python 2.6 , que eu quero agora atualizar para python 2.7 .
Aqui está a coisa embora; Eu já escrevi uma quantidade enorme de linhas de script em python 2.6 , até que finalmente cedi à necessidade de usar uma versão mais nova do python. Então eu já tenho muitos pacotes ( filelock , argparse , paramkio , psutil , dill e mais ...), instalados com pip install PACKAGE no meu script python 2.6 .

Quando finalmente descobri como instalar o python 2.7 (adicionarei os comandos para referência):

$ wget http://python.org/ftp/python/2.7.6/Python-2.7.6.tar.xz --no-check-certificate
$ tar xf Python-2.7.6.tar.xz
$ cd Python-2.7.6
$ ./configure
$ make 
$ sudo make altinstall

Eu tive mais alguns problemas ...

Primeiro, python 2.7 foi instalado em /usr/local/bin/python2.7 , enquanto python 2.6 está em /usr/bin/python2.6 . Ingenuamente, achei que instalar python 2.7 atualizará (= sobrescrever) o python 2.6 existente. Portanto, ao digitar python do shell, o interpretador usado ainda será python 2.6 , em vez do python 2.7 recém-instalado.

Em segundo lugar, a execução de pip install PACKAGE ainda tenta instalar o pacote para python 2.6 :

$ pip install filelock
DEPRECATION: Python 2.6 is no longer supported by the Python core team, please upgrade your Python. A future version of pip will drop support for Python 2.6
    Requirement already satisfied (use --upgrade to upgrade): filelock in /usr/lib/python2.6/site-packages

btw, notei que /usr/bin tem pip e easy_install , ao contrário de /usr/local/bin/ (apenas no caso desta informação poder ajudar a resolver este problema).

Como resolvo essas duas questões?
Eu quero que python 2.7 seja escolhido sempre que você digitar python do shell, de preferência tomando o lugar de python 2.6 em /usr/bin/ , e  Eu quero que pip instale pacotes para python 2.7 .

Eu tentei muitas das respostas sugeridas que pareciam estar relacionadas, tanto aqui quanto SO , mas nada parece funcionar para mim.

    
por so.very.tired 10.09.2016 / 10:17

1 resposta

1

No README na parte superior da árvore de origem, ele descreve muitas das opções de compilação que você pode fazer. Em particular, você pode instalar os arquivos resultantes em /usr em vez do padrão /usr/local fazendo

./configure --prefix=/usr
make clean
make
sudo make install

Isso instalará, por exemplo, /usr/bin/python como um link simbólico para python2 e esse python2 como um link simbólico para python2.7 , o binário real. Você pode verificar isso facilmente antes de executar o sudo make install final fazendo uma instalação não raiz em um subdiretório simples x :

make DESTDIR=x install

Todos os arquivos serão instalados em x e você poderá navegar para ver se corresponde às suas necessidades. Por exemplo,

ls -l x/usr/bin/   
-rwxr-xr-x 1 meuh meuh      95 Sep 10 11:39 2to3
-rwxr-xr-x 1 meuh meuh      93 Sep 10 11:39 idle
-rwxr-xr-x 1 meuh meuh      78 Sep 10 11:39 pydoc
lrwxrwxrwx 1 meuh meuh       7 Sep 10 11:39 python -> python2
lrwxrwxrwx 1 meuh meuh      14 Sep 10 11:39 python-config -> python2-config
lrwxrwxrwx 1 meuh meuh       9 Sep 10 11:39 python2 -> python2.7
lrwxrwxrwx 1 meuh meuh      16 Sep 10 11:39 python2-config -> python2.7-config
-rwxr-xr-x 1 meuh meuh 7991432 Sep 10 11:39 python2.7
-rwxr-xr-x 1 meuh meuh    1668 Sep 10 11:39 python2.7-config
-rwxr-xr-x 1 meuh meuh   18541 Sep 10 11:39 smtpd.py
    
por 10.09.2016 / 11:46

Tags