Come posso installare una versione diversa di Python usando apt-get?


125

Come posso installare una versione diversa di Python usando apt-get?

Ovviamente mi rendo conto di poter installare utilizzando la tar tar di origine, tuttavia preferirei non installare da sorgente e utilizzare invece il gestore di pacchetti, poiché è quello che serve. Sicuramente da qualche parte rispettabile costruisce file .deb per le ultime versioni di Python (perché python.org non è oltre me) a cui posso fare riferimento.

Cosa devo fare per fare riferimento a loro e quali problemi potrebbe creare durante l'aggiornamento alla versione successiva?

Se non c'è altro modo se non quello di creare da sorgenti, esiste un pacchetto (pseudo) che posso installare che fornirà tutte le dipendenze necessarie senza doverle trovare e installarle singolarmente? In modo che non ottenga:

The necessary bits to build these optional modules were not found:
_bz2                  _curses               _curses_panel      
_dbm                  _gdbm                 _lzma              
_sqlite3              _ssl                  _tkinter           
readline              zlib  


hai mai ricevuto E: Couldn't find any package by regex 'python3.5'e quindi non sei riuscito a installare tramite apt-get install python3.5?
Charlie Parker,


alcuni buoni suggerimenti qui: quora.com/…
Charlie Parker,

1
@CharlieParker Hai provato a installare Anaconda ?
M. Becerra,

Risposte:


169

Felix Krull gestisce un'offerta PPA praticamente qualsiasi versione di Python (sul serio, c'è 2.3.7 build per vivid ...) per molte versioni di Ubuntu su https://launchpad.net/~deadsnakes/+archive/ubuntu/ppa .

Fai il solito:

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python3.5

Non sovrascriverà il tuo esistente python3.4che è ancora link simbolico come python3.

NON modificare il link simbolico! Apparentemente ci sono molte funzioni di sistema che non funzionano correttamente con python3.5.

Ho provato questo e in seguito non sono riuscito ad aprire un terminale, un aggiornamento software, ...

cd /usr/bin
sudo rm python3

L'aggiornamento a Wily adatterà il meta-pacchetto python3a cui puntare python3.5. Non mi aspetto alcuna rottura, ma a questo punto il repository straniero non è più necessario. Quindi, per essere davvero al sicuro, puoi eliminare PPA prima di eseguire l'aggiornamento.


5
perché noob è là fuori, non collegare simbolicamente! inoltre, non il collegamento simbolico significa solo che è necessario digitare python3.5 dalla riga di comando per eseguire python 3.5
Chris Hawkes

4
Potresti indicarmi, come posso usare il pip 3.4 con questo 3.5?
Groosha,

2
@ kondra007 Ho seguito le istruzioni di pip.pypa.io/en/stable/installing ( leggi l'avvertenza ) e questi due comandi wget https://bootstrap.pypa.io/get-pip.py; sudo python3.5 get-pip.pymi hanno dato un pip funzionante per Python 3.5 ma pip3.4 non funziona più. Se qualcuno lo sa meglio, commenta
ndemou,

2
Anche per impostare python3.5 come predefinito ~$ vim ~/.bashrce aggiungere questo alias python=python3.5. poi~$source ~/.bashrc
Krishnadas PC

1
Suggerimenti: se add-apt-repository: command not found, esegui apt-get install software-properties-common python-software-propertiesper installare
Mithril il

35

Questo link di Youtube mi ha aiutato a installarlo.

I passaggi sono:

sudo apt-get install libssl-dev openssl
wget https://www.python.org/ftp/python/3.5.0/Python-3.5.0.tgz
tar xzvf Python-3.5.0.tgz
cd Python-3.5.0
./configure
make
sudo make install

Per verificare se python è installato, digitare python3.5altro:

sudo ln -fs /opt/Python-3.5.0/Python /usr/bin/python3.5

3
OP ha detto che non voleva compilare dalla fonte
Michael Bates,

3
Si hai ragione. Anche la compilazione dalla fonte potrebbe introdurre ulteriori problemi di dipendenza lungo la strada. Ma è così che l'ho risolto. Se c'è un modo migliore vorrei sicuramente saperlo.
Joydeep Bhattacharjee,

5
Considerare ./configure --enable-optimizations stackoverflow.com/questions/41405728/...
warvariuc

1
@CharlieParker perché Python non è fatto per un sistema operativo specifico. È pensato per essere eseguito su qualsiasi piattaforma. Per Linux questo significa che o ogni versione deve essere compilata e distribuita per ogni versione di ogni distribuzione Linux (di cui ce ne sono molte), oppure distribuiscono il sorgente e permettono all'utente di compilarlo da solo nell'ambiente in cui sarà Usato. Quest'ultimo è molto più fattibile.
CJStuart,

2
È inoltre necessario il compilatore c / c ++ daapt-get install build-essential
bato3 il

13

Segui questi passaggi (testati):

Passaggio 1: installare i pacchetti richiesti

Utilizzare il seguente comando per installare i prerequisiti per Python prima di installarlo.

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

Passaggio 2: Scarica Python 3.5.2

Scarica Python usando il seguente comando dal sito ufficiale di Python. Puoi anche scaricare l'ultima versione al posto di quella specificata di seguito.

cd /usr/src
sudo wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz

Ora estrai il pacchetto scaricato.

sudo tar xzf Python-3.5.2.tgz

Passaggio 3: compilare Sorgente Python

Usa il set di comandi di seguito per compilare il codice sorgente di Python sul tuo sistema usando altinstall.

cd Python-3.5.2
sudo ./configure
sudo make altinstall

make altinstallviene utilizzato per impedire la sostituzione del file binario python predefinito /usr/bin/python.

Passaggio 4: verifica la versione di Python

Controlla l'ultima versione installata di Python usando il comando seguente.

$ python3.5 -V

Python 3.5.2

Fonte .


2
+1 per l'utilizzo di altinstall per impostazione predefinita. Non ci sono molti scenari reali in cui puoi vivere solo con una versione. Anche di sistemi con Python3 di default potresti essere costretto a installare Python come invertito -> Python2 invece o aggiungendo Python2.
erm3nda,

1
Ho ricevuto un errore come descritto qui: bugs.python.org/issue31652 ha dovuto correre sudo apt-get install libffi-devper risolverlo.
Nishan Chathuranga,

Vorrei anche aggiungere sudo apt-get install liblzma-devper abilitare il supporto lzma.
v.grabovets

6

Per quanto ne so, almeno in un contenitore docker, si può definitivamente apt-getpython 3.

Per prima cosa mi sono imbattuto in un contenitore Ubuntu con contenitore:

docker run -it --rm ubuntu:latest bash

quindi per qualche motivo aveva bisogno di aggiornare alcune cose di Ubuntu così ho fatto (all'interno del contenitore):

apt-get update && apt-get install -y build-essential git libjpeg-dev

e poi ho semplicemente installato Python3 e sembra che abbia automaticamente Python 3.5:

apt-get install python3
apt-get install python3-pip

e per verificare se pip funziona consente di scaricare qualcosa:

pip3 install tensorflow

tutto sembra funzionare bene per me.

Nota importante: sembra che se hai già installato Python 3.4, allora apt-get install python3non funziona perché dice che ce l'hai già. Sembra che sia stato uno dei miei problemi perché stavo partendo da un'immagine docker di Tensorflow (in particolare gcr.io/tensorflow/tensorflow:latest-devel-py3) e qualcosa in quell'immagine (suppongo che abbia già Python 3.4 ma potrebbe essere qualcos'altro) non mi ha permesso di aggiornare il mio pitone per ottenere Python 3.5.


credito: ho scoperto questo quando ho chiesto quanto segue: https://stackoverflow.com/questions/42122826/can-one-use-python-3-5-in-a-docker-container-based-out-of-the -tensorflow-finestra mobile


Nota: si può anche installare Anaconda. Per un esempio di finestra mobile si può fare:

docker pull continuumio/anaconda3
docker run -i -t continuumio/anaconda3 /bin/bash

dal loro sito ufficiale: https://hub.docker.com/r/continuumio/anaconda3/

Questa soluzione installa Python 3.6 ma sono sicuro che se lo guardi lì puoi ottenere Python 3.5 se è quello che vuoi.

Nota: probabilmente dovresti usare un ambiente virtuale come virtual env o conda / anaconda comunque a meno che tu non usi comunque la finestra mobile. Volevo solo ricordare alle persone.


1
"in un contenitore docker" è un'affermazione molto generica: tutto dipende dall'immagine su cui si basa il contenitore, ad esempio quale versione di Ubuntu. Inoltre, ci possono essere versioni minori come 3.5 o 3.6 che non sono disponibili in una versione di Ubuntu (14.04 per esempio)
giorgiosironi,

2

Esistono diverse nuove distribuzioni di Python disponibili per l'installazione tramite apt-get elencate nei pacchetti Ubuntu

ad esempio sono attualmente disponibili le seguenti versioni:

python2.7

python3.2

python3.4

python3.5

python3.6

La disponibilità varia a seconda della versione di Ubuntu. Ad esempio 3.5 è disponibile per Xenial, Yakkety e Zesty e 3.6 è disponibile per Yakkety e Zesty ma è necessario abilitare il repository Universe se non abilitato per ottenerli tramite apt-get. Per verificare la disponibilità della tua versione di Ubuntu, controlla i link sopra.

Una rapida occhiata indica che questa risposta è ancora valida in quanto PPA ha 3.6 anche per Trusty.


le versioni di Python disponibili in Ubuntu Repo non sono l' ultima versione di Python .
Yaitloutou,

@yaitloutou La domanda dice "più recente" non "più recente" Sentiti libero di scrivere una risposta migliore.
Anziano Geek,

Hai ragione, ma dal più recente relativamente a ciò che non è stato specificato l'ho interpretato come il più recente :)
yaitloutou

@yaitloutou Sentiti libero e sicuramente scrivi una risposta migliore! Sono sicuro che sarebbe apprezzato.
Anziano Geek,

Ho appena iniziato ad essere attivo qui e sto ancora imparando. Mi dispiace se trovi il mio commento sulla tua risposta invadente
yaitloutou,

0

Vorrei prendere in considerazione l'utilizzo di ambienti virtuali invece di installare le versioni di Python tramite apt-get.

L'uso di ambienti virtuali, vedi qui, è una buona pratica per lo sviluppo con Python. Ti consentono di isolare il tuo ambiente Python dalle versioni di Python installate dal sistema.

Inoltre, non è necessario ottenere l'accesso sudo durante l'installazione di alcuna libreria (tramite pip, ecc.).


11
Penso che sia necessario installare la versione di Python desiderata prima di poterla utilizzare in un ambiente virtuale.
Nzbuu,

1
Installi la versione desiderata di Python nell'ambiente virtuale, quindi cambi il percorso relativo a Python semplicemente eseguendo lo script "Attiva" in ambiente virtuale.
devrimbaris,

Questo è esattamente quello che voglio fare: la prima cosa che ho provato a fare dopo aver seguito la risposta di @ Nephente è stata puntare su di essa usando virtualenv -p. Ma è esploso con "ImportError: impossibile importare il nome 'HTTPSHandler'".
Michael Scheper,

1
perché questo è stato downvoted? gli env virtuali di solito funzionano bene.
Charlie Parker,

come si installa un ambiente virtuale in Ubuntu (come nel tuo suggerimento) ma con Python 3.5?
Charlie Parker,

0

Conda è attivamente aggiornato e consente di installare più versioni di Python in sistemi di gestione gestiti senza il tedio di impostare tutto da soli. I problemi di tracciamento dell'estensione binaria potrebbero essere stati risolti in molte delle catene di dipendenza / pip gestite da anaconda che utilizza.

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.