Il modo migliore per eseguire Python 3.7 su Ubuntu 16.04 che viene fornito con Python 3.5


18

Vorrei evitare i backport, sembrano sempre incasinare i miei pacchetti.

Quindi pensavo che strumenti come conda / virtualenv / forse persino la finestra mobile possano essere d'aiuto. Qual è il modo più semplice / pulito per lavorare con Python 3.7 sul mio sistema?


1
Guarda in Pyenv
Naftuli Kay,

Risposte:


33

Questo dovrebbe farti funzionare con Python 3.7 su Ubuntu 16.04

# Install requirements
sudo apt-get install -y build-essential \
checkinstall \
libreadline-gplv2-dev \
libncursesw5-dev \
libssl-dev \
libsqlite3-dev \
tk-dev \
libgdbm-dev \
libc6-dev \
libbz2-dev \
zlib1g-dev \
openssl \
libffi-dev \
python3-dev \
python3-setuptools \
wget

# Prepare to build
mkdir /tmp/Python37
cd /tmp/Python37

# Pull down Python 3.7, build, and install
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz
tar xvf Python-3.7.0.tar.xz
cd /tmp/Python37/Python-3.7.0
./configure
sudo make altinstall

Quindi chiameresti Python in questo modo:

python3.7 ./yourScript.py

Questa è una schermata di più versioni di Python coesistenti in un contenitore docker e come possono essere distinte:

Come chiamare diverse versioni di Python

Pip avrebbe dovuto essere installato anche con questa installazione. Per installare i pacchetti utilizzare questo formato:

pip3.7 --version

1
Funziona come un fascino. Sono stato in grado di installare python3.7. l'unico avvertimento è usare sudo make altinstall poiché l'accesso alla directory non era per l'utente normale. anche tutti gli apt-get sono stati installati usando sudo. Grazie mille per aver condiviso le informazioni.
Doogle,

La risposta accettata ha funzionato bene per me, con un avvertimento; Ho dovuto apt install libffi-devanche evitare l'errore di inseguimento nel passaggio altinstall (Ubuntu 16.04 LTS):python ModuleNotFoundError: No module named '_ctypes'
moshisushi,

@moshisushi Mi sono imbattuto in questo problema anche quando stavo lavorando per una risoluzione. Per questo motivo, ho già incluso libffi-dev nell'installazione iniziale.
Sn3akyP3t3

1
@Doogle Comandi prefissati con sudo dove necessario. Grazie per la segnalazione. Questi passaggi sono stati estratti dai passaggi del build del mio contenitore Docker che presupponevano l'utente root.
Sn3akyP3t3

3

Non consiglierei di smanettare manualmente con installazioni e percorsi del codice sorgente. Usapyenv e salva te stesso il problema.

Tutto quello che devi fare è:

  • Esegui il programma di pyenvinstallazione
  • Seguire le istruzioni
  • Installa le versioni di Python necessarie
  • Scegli quale versione di Python desideri utilizzare per una determinata directory o a livello globale

Ad esempio, per installare 3.7, controlla quali versioni sono disponibili:

pyenv install -l | grep 3.7

Quindi eseguire:

pyenv install 3.7.1

Ora puoi scegliere la tua versione di Python:

pyenv global 3.7.1

Questo passa pythonal punto 3.7.1. Se si desidera il sistema Python, eseguire:

pyenv global system

Per verificare quali versioni di Python sono disponibili, esegui pyenv versions.


0

Puoi scaricare il codice sorgente da www.python.org, compilarlo e compilarlo dal sorgente, quindi:

1) Prepara il percorso degli eseguibili di Python PATHe le librerie di LD_LIBRARY_PATH.

2) Fai quello che ho fatto e compilalo e costruiscilo dal sorgente e crea collegamenti simbolici agli eseguibili in /usr/bin. Puoi chiamarlo python37per distinguerlo da quello python 3.5che è già installato.

Il primo metodo lo utilizzerà nel tuo ambiente di default mentre con il secondo attivo, dovrai specificarlo con il comando che hai usato per il collegamento simbolico. Potresti voler utilizzare il secondo metodo prima di renderlo predefinito, poiché python 3.7è ancora in fase di sviluppo.

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.