Installa Python 3.7 su Ubuntu 18.04 LTS

Python è uno dei linguaggi di programmazione generici più popolari e richiesti. È un linguaggio di programmazione interpretato e di alto livello che supporta più paradigmi di programmazione, inclusa la programmazione procedurale, orientata agli oggetti e funzionale. È spesso descritto come un linguaggio “batterie incluse” grazie alla sua completa libreria standard.
È un linguaggio di programmazione ampiamente utilizzato e altamente versatile in quanto viene utilizzato dai principianti agli scienziati per vari tipi di attività. Viene utilizzato per la programmazione e lo scripting di sistema, l’automazione di attività ripetitive, la creazione di siti Web e applicazioni Web, algoritmi di apprendimento automatico, analisi dei dati e altro ancora.
In questo tutorial impareremo come installare Python 3.7 in Ubuntu 18.04 LTS Bionic Beaver. Tratteremo due modi principali per installare su una macchina Ubuntu 18.04, uno è completo PPA dei serpenti morti usando il gestore di pacchetti APT mentre un altro è compilando dal sorgente.
Installa Python 3.7 su Ubuntu usando APT (con PPA)
Per impostazione predefinita, Ubuntu 18.04 viene fornito con Python 3.6.9. Eseguendo il seguente comando è possibile ottenere la versione di Python:
python3 --version
Python 3.6.9
Innanzitutto, dobbiamo assicurarci di aggiornare l’indice del repository di pacchetti Ubuntu della nostra macchina Ubuntu 18.04. Questo può essere fatto eseguendo il seguente comando:
$ sudo apt update
Una volta completato l’aggiornamento, dovremo assicurarci che il pacchetto “software-properties-common” sia installato sulla nostra macchina in modo da poter aggiungere un PPA alla nostra macchina.
$ sudo apt install software-properties-common
Ora possiamo facilmente aggiungere il PPA deadsnakes usando il seguente comando:
$ sudo add-apt-repository ppa:deadsnakes/ppa
Infine, poiché il PPA richiesto viene aggiunto alla nostra macchina Ubuntu 18.04, ora possiamo semplicemente utilizzare il comando apt per installare Python 3.7.
Il -y
opzione nel comando apt informs per impostare il sì automatico ai prompt.
$ sudo apt install python3.7 -y
Output
$ sudo apt install python3.7 -y
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
libpython3.7-minimal libpython3.7-stdlib python3-distutils python3-lib2to3
python3.7-minimal
Suggested packages:
python3.7-venv python3.7-doc binfmt-support
The following NEW packages will be installed:
libpython3.7-minimal libpython3.7-stdlib python3-distutils python3-lib2to3
python3.7 python3.7-minimal
0 upgraded, 6 newly installed, 0 to remove and 321 not upgraded.
Need to get 4,792 kB of archives.
After this operation, 26.6 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://ppa.launchpad.net/deadsnakes/ppa/ubuntu bionic/main amd64 libpython3.7-minimal amd64 3.7.7-1+bionic1 [596 kB]
Get:2 http://us.archive.ubuntu.com/ubuntu bionic-updates/main amd64 python3-lib2to3 all 3.6.9-1~18.04 [77.4 kB]
Get:3 http://ppa.launchpad.net/deadsnakes/ppa/ubuntu bionic/main amd64 python3.7-minimal amd64 3.7.7-1+bionic1 [1,839 kB]
Get:4 http://us.archive.ubuntu.com/ubuntu bionic-updates/main amd64 python3-distutils all 3.6.9-1~18.04 [144 kB]
Get:5 http://ppa.launchpad.net/deadsnakes/ppa/ubuntu bionic/main amd64 libpython3.7-stdlib amd64 3.7.7-1+bionic1 [1,784 kB]
Get:6 http://ppa.launchpad.net/deadsnakes/ppa/ubuntu bionic/main amd64 python3.7 amd64 3.7.7-1+bionic1 [351 kB]
Fetched 4,792 kB in 7s (737 kB/s)
Selecting previously unselected package libpython3.7-minimal:amd64.
(Reading database ... 134446 files and directories currently installed.)
Preparing to unpack .../0-libpython3.7-minimal_3.7.7-1+bionic1_amd64.deb ...
Unpacking libpython3.7-minimal:amd64 (3.7.7-1+bionic1) ...
Selecting previously unselected package python3.7-minimal.
Preparing to unpack .../1-python3.7-minimal_3.7.7-1+bionic1_amd64.deb ...
Unpacking python3.7-minimal (3.7.7-1+bionic1) ...
Selecting previously unselected package libpython3.7-stdlib:amd64.
Preparing to unpack .../2-libpython3.7-stdlib_3.7.7-1+bionic1_amd64.deb ...
Unpacking libpython3.7-stdlib:amd64 (3.7.7-1+bionic1) ...
Selecting previously unselected package python3-lib2to3.
Preparing to unpack .../3-python3-lib2to3_3.6.9-1~18.04_all.deb ...
Unpacking python3-lib2to3 (3.6.9-1~18.04) ...
Selecting previously unselected package python3-distutils.
Preparing to unpack .../4-python3-distutils_3.6.9-1~18.04_all.deb ...
Unpacking python3-distutils (3.6.9-1~18.04) ...
Selecting previously unselected package python3.7.
Preparing to unpack .../5-python3.7_3.7.7-1+bionic1_amd64.deb ...
Unpacking python3.7 (3.7.7-1+bionic1) ...
Processing triggers for mime-support (3.60ubuntu1) ...
Processing triggers for desktop-file-utils (0.23-1ubuntu3.18.04.2) ...
Setting up libpython3.7-minimal:amd64 (3.7.7-1+bionic1) ...
Setting up python3.7-minimal (3.7.7-1+bionic1) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Processing triggers for gnome-menus (3.13.3-11ubuntu1.1) ...
Setting up python3-lib2to3 (3.6.9-1~18.04) ...
Setting up python3-distutils (3.6.9-1~18.04) ...
Setting up libpython3.7-stdlib:amd64 (3.7.7-1+bionic1) ...
Setting up python3.7 (3.7.7-1+bionic1) ...
Ora per assicurarci che Python sia stato installato correttamente, possiamo controllare la versione di Python come di seguito.
$ python3.7 -V
Python 3.7.7
Installa Python 3.7 su Ubuntu dal sorgente
In questo metodo impareremo come installare Python 3.7 nella nostra macchina Ubuntu 18.04 compilandolo dal codice sorgente. Per procedere, dovremo assicurarci che siano soddisfatti alcuni prerequisiti. Innanzitutto, dovremo assicurarci che gli strumenti di compilazione necessari per compilare i codici sorgente siano installati sulla nostra macchina.
Per fare ciò, dovremo prima aggiornare l’indice del repository locale di apt come segue:
$ sudo apt update
Poiché l’indice del repository locale è stato aggiornato, ora installeremo le dipendenze necessarie per compilare e installare python3.7. Per fare ciò, dovremo eseguire il seguente comando:
$ sudo apt install -y build-essential wget zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev
Dopo che tutte le dipendenze sono state installate e pronte, scaricheremo l’ultima versione di Python 3.7 dal file il sito ufficiale di Python utilizzando il comando wget come segue:
$ wget https://www.python.org/ftp/python/3.7.7/Python-3.7.7.tgz
--2020-03-17 16:19:44-- https://www.python.org/ftp/python/3.7.7/Python-3.7.7.tgz
Resolving www.python.org (www.python.org)... 151.101.8.223, 2a04:4e42:2::223
Connecting to www.python.org (www.python.org)|151.101.8.223|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 23161893 (22M) [application/octet-stream]
Saving to: ‘Python-3.7.7.tgz’
Python-3.7.7.tgz 100%[===================>] 22.09M 2.50MB/s in 9.2s
2020-03-17 16:19:54 (2.41 MB/s) - ‘Python-3.7.7.tgz’ saved [23161893/23161893]
Al momento della stesura di questo tutorial, Python 3.7 è stato rilasciato con l’ultima versione 3.7.7. Quindi scaricheremo ed estrarremo semplicemente il file tgz usando il comando tar.
$ tar -xf Python-3.7.7.tgz
Dopo che i codici sorgente sono stati estratti dal file tgz, ora faremo cd nella directory e quindi eseguiremo lo script di installazione per valutare se le dipendenze richieste per la compilazione sono soddisfatte o meno. Il flag –enable-optimizations ottimizza il binario Python e aumenta l’esecuzione del codice del 10-20%.
$ cd Python-3.7.7
$ ./configure --enable-optimizations
checking if the dirent structure of a d_type field... yes
checking for the Linux getrandom() syscall... yes
checking for the getrandom() function... yes
checking for pkg-config... no
checking for openssl/ssl.h in /usr/local/ssl... no
checking for openssl/ssl.h in /usr/lib/ssl... no
checking for openssl/ssl.h in /usr/ssl... no
checking for openssl/ssl.h in /usr/pkg... no
checking for openssl/ssl.h in /usr/local... no
checking for openssl/ssl.h in /usr... yes
checking whether compiling and linking against OpenSSL works... yes
checking for X509_VERIFY_PARAM_set1_host in libssl... yes
checking for --with-ssl-default-suites... python
configure: creating ./config.status
config.status: creating Makefile.pre
config.status: creating Misc/python.pc
config.status: creating Misc/python-config.sh
config.status: creating Modules/ld_so_aix
config.status: creating pyconfig.h
creating Modules/Setup
creating Modules/Setup.local
creating Makefile
Una volta eseguito correttamente lo script di installazione, ora installeremo python 3.7 nella nostra macchina Ubuntu 18.04 LTS eseguendo il comando make con l’argomento alinstall. L’argomento alinstall garantisce che non sia installato come versione predefinita del sistema Python.
$ sudo make altinstall
changing mode of /usr/local/bin/idle3.7 to 755
changing mode of /usr/local/bin/pyvenv-3.7 to 755
changing mode of /usr/local/bin/pydoc3.7 to 755
changing mode of /usr/local/bin/2to3-3.7 to 755
rm /usr/local/lib/python3.7/lib-dynload/_sysconfigdata_m_linux_x86_64-linux-gnu.py
rm -r /usr/local/lib/python3.7/lib-dynload/__pycache__
Creating directory /usr/local/share/man/man1
/usr/bin/install -c -m 644 ./Misc/python.man
/usr/local/share/man/man1/python3.7.1
if test "xupgrade" != "xno" ; then
case upgrade in
upgrade) ensurepip="--altinstall --upgrade" ;;
install|*) ensurepip="--altinstall" ;;
esac;
./python -E -m ensurepip
$ensurepip --root=/ ;
fi
Looking in links: /tmp/tmp06ih2lq9
Collecting setuptools
Collecting pip
Installing collected packages: setuptools, pip
Successfully installed pip-19.2.3 setuptools-41.2.0
Ora possiamo verificare se Python 3.7 è stato installato correttamente controllando la sua versione come segue.
$ python3.7 -V
Python 3.7.7
Conclusione
Infine, abbiamo installato con successo Python 3.7 nella nostra macchina Ubuntu 18.04 LTS. Al momento della stesura di questo tutorial, l’ultima versione di Python 3.7 era la 3.7.7, quindi potresti voler sostituire la 3.7.7 con l’ultima versione della release. Ora possiamo facilmente eseguire script e codice Python che sono stati scritti per 3.7. Se hai domande, suggerimenti, feedback, scrivili nella casella dei commenti qui sotto.