Aggiornamento a python 2.7.5 su Ubuntu 12.04


9

Ubuntu 12.04 viene fornito python v 2.7.3di default. Voglio aggiornarlo a v 2.7.5. Ho provato le istruzioni fornite in questa domanda ,

sudo apt-get install build-essential
sudo apt-get install libreadline-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev

cd ~/Downloads/
wget http://python.org/ftp/python/2.7.5/Python-2.7.5.tgz

tar -xvf Python-2.7.5.tgz
cd Python-2.7.5

./configure
make
sudo make altinstall

L'ultimo comando ha esito negativo con l'errore:

...
Compiling /usr/local/lib/python2.7/xmlrpclib.py ...
Compiling /usr/local/lib/python2.7/zipfile.py ...
make: *** [libinstall] Error 1

Come posso effettuare questo aggiornamento?


3
Sei davvero molto sicuro di dover aggiornare alla 2.7.5? Tutte le correzioni dei bug vengono riportate in 2.7.3 in Ubuntu. Vuoi davvero salvarti tutti i mal di testa con la compilazione dalla fonte. Fornire il motivo specifico per l'installazione 2.7.5. Su questo sito le domande su un'installazione Python interrotta sono attività quotidiane ed è molto comune vedere che è causato dall'installazione dall'origine. Vedi ad esempio askubuntu.com/q/323248/88802
gertvdijk

1
Stavo usando un pacchetto nel modo sbagliato, ma la domanda è ancora valida e davvero non capisco il downvote senza una spiegazione fornita.
Gabriel,

Cosa succede quando corri sudo make **install**invece di sudo make **altinstall**? Ricevi lo stesso errore?
Kevin Bowen,

Ora ho paura di provare davvero la tua soluzione da quando ho sentito così tante volte che si romperà il mio sistema. Segnerò la tua risposta come accettata perché sembra davvero completa. Grazie.
Gabriel,

2
@Gabriel La soluzione di maggotbrain è molto bella; ti permette di installare la versione che preferisci in un pyenv. Nessun danno viene fatto sul sistema Python. Me lo ricorderò per domande future. :)
gertvdijk,

Risposte:


13

L'installazione dal sorgente può essere fatta, ovviamente, ma sarei titubante ad aggiornare il pacchetto python dei miei sistemi Ubuntu dal sorgente per diversi motivi:

  1. Ciò potrebbe danneggiare il sistema eseguendo una compilazione diretta dal sorgente (non sono esattamente sicuro di come Ubuntu personalizzi le build dei pacchetti Python).

  2. Sarei preoccupato che potrebbero esserci problemi con l'utilizzo di moduli dai repository in futuro.

C'è un PPA che sembra attivo (il treno 2.7.x è stato costruito l'ultima volta nell'aprile di quest'anno), ma il PPA non ha ancora una build 2.7.5. Potresti voler fare un ping al manutentore e vedere quali sono i loro piani per build future e se ne includeranno uno per 2.7.5. Se possibile, lo consiglierei oltre l'installazione dalla fonte. Come con qualsiasi nuovo software, consiglierei di costruirlo prima su un sistema di test.

Un'altra opzione è utilizzare un sandbox ( pyenv) per eseguire qualsiasi nuovo pacchetto software non testato. Un'installazione diretta sul sistema potrebbe influire negativamente sul funzionamento della macchina.

Il pacchetto pyenv consentirà di installare una versione Python non di sistema sulla tua scatola senza influire sul pacchetto Python principale installato sul tuo computer (Ancora una volta: il tuo sistema dipende dalla versione attualmente installata di Python e l'aggiornamento potrebbe danneggiare il tuo sistema). In precedenza, Pythonbrew era raccomandato per isolare i pacchetti python dal sistema, ma da allora è stato deprecato e sostituito dal pyenvpacchetto.

Il pyenvpacchetto offre le seguenti funzionalità:

  • Consente di modificare la versione globale di Python in base all'utente.
  • Fornisce supporto per le versioni Python per progetto.
  • Consente di sovrascrivere la versione di Python con una variabile di ambiente.
  • Cerca comandi da più versioni di Python alla volta.

Installazione

  1. Dai un'occhiata a pyenv in ~ / .pyenv.

    git clone git://github.com/yyuu/pyenv.git .pyenv
  2. Aggiungi ~ / .pyenv / bin a $ PATH per accedere all'utilità della riga di comando pyenv.

    echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bash_profile

    Nota Zsh: modifica il tuo ~/.zshenvfile anziché ~/.bash_profile.

  3. Aggiungi pyenv init alla shell per abilitare gli shim e il completamento automatico.

    echo 'eval "$(pyenv init -)"' >> ~/.bash_profile

    Nota Zsh: modifica il tuo ~/.zshenvfile anziché ~/.bash_profile.

  4. Riavvia la shell in modo che le modifiche al percorso abbiano effetto. Ora puoi iniziare a usare pyenv.

    exec $SHELL
  5. Installa le versioni di Python in ~ / .pyenv / version. Ad esempio, per installare Python 2.7.5, scaricare e decomprimere il sorgente, quindi eseguire:

    pyenv install 2.7.5

    NOTA Se è necessario passare le opzioni di configurazione per compilare dall'origine, utilizzare la variabile di ambiente CONFIGURE_OPTS.

  6. Ricostruisci i binari di spessore. Dovresti farlo ogni volta che installi un nuovo binario Python (ad esempio, quando installi una nuova versione di Python o quando installi un pacchetto che fornisce un binario).

    pyenv rehash

1
pyenvè geniale per tanti motivi. Mi aiuta nella mia sperimentazione immensamente con il minimo fastidio dopo l'installazione iniziale.
Fahad Yousuf,

Verrà eseguito dalla homecartella di un utente specifico ? Come posso installarlo per ogni utente? Posso installare ./pyenvin /usr/local/bino è che una cattiva idea?
rischio biologico
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.