Continuando a documentarlo per le ultime versioni di Ubuntu 1 : per il server Ubuntu 16.04.1, Python predefinito è la versione 3.5 e Python 2.7 non è installato per impostazione predefinita. Su una nuova installazione (nota che non c'è nemmeno un python
eseguibile):
$ type python3 python2 python
python3 is /usr/bin/python3
-bash: type: python2: not found
-bash: type: python: not found
$ python3 --version
Python 3.5.2
$ python --version
The program 'python' can be found in the following packages:
* python-minimal
* python3
Try: sudo apt install <selected package>
Nota: prima di continuare, probabilmente vorrai fare un rapido sudo apt-get update
, sudo apt-get upgrade
e sudo apt-get dist-upgrade
(per favore nota esattamente cosa stanno facendo questi comandi; presumo che sia una nuova installazione qui).
Installare python 2.7 è facile come:
$ sudo apt-get install python2.7
L'output iniziale dell'installazione di Python 2.7 è il seguente:
$ sudo apt-get install python2.7
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
libpython2.7-minimal libpython2.7-stdlib python2.7-minimal
Suggested packages:
python2.7-doc binutils binfmt-support
The following NEW packages will be installed:
libpython2.7-minimal libpython2.7-stdlib python2.7 python2.7-minimal
0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
Need to get 3,735 kB of archives.
After this operation, 15.8 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
...etc, etc...
Dopo aver installato Python 2.7,
$ type python3 python2.7 python3.5 python2 python
python3 is /usr/bin/python3
python2.7 is /usr/bin/python2.7
python3.5 is /usr/bin/python3.5
bash: type: python2: not found
bash: type: python: not found
Ma c'è ancora un problema, dal momento che non è ancora possibile installare i moduli PyPI tramite pip
- ad esempio, se si desidera il notebook jupyter o l'ultimo scipy o numpy (ecc.), Si consiglia di installare pip
e quindi pip install
quelli, e ancora passare a apt-get
per installare le dipendenze di sistema necessarie , come graphviz o le librerie di sistema di base.
$ type pip3 pip2 pip
bash: type: pip3: not found
bash: type: pip2: not found
bash: type: pip: not found
$ python3 -m pip --version
/usr/bin/python3: No module named pip
Quindi, per installare pip, ancora una volta, è facile come sudo apt-get install python-pip
:
$ sudo apt-cache search -n pip | egrep '^python[0-9]*-pip'
python-pip - alternative Python package installer
python-pip-whl - alternative Python package installer
python3-pip - alternative Python package installer - Python 3 version of the package
Ti serviranno sia python-pip
per Python 2.7 pip
che python3-pip
per Python 3 pip
. L'installazione tramite apt-get
è sicuro di installare le dipendenze richieste; ad esempio, ecco l'output per l'installazione di pip2:
$ sudo apt-get install python-pip
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
binutils build-essential dpkg-dev fakeroot g++ g++-5 gcc gcc-5 libalgorithm-diff-perl
libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan2 libatomic1 libc-dev-bin libc6-dev
libcc1-0 libcilkrts5 libdpkg-perl libexpat1-dev libfakeroot libfile-fcntllock-perl libgcc-5-dev
libgomp1 libitm1 liblsan0 libmpx0 libpython-all-dev libpython-dev libpython-stdlib libpython2.7
libpython2.7-dev libquadmath0 libstdc++-5-dev libtsan0 libubsan0 linux-libc-dev make
manpages-dev python python-all python-all-dev python-dev python-minimal python-pip-whl
python-pkg-resources python-setuptools python-wheel python2.7-dev
Suggested packages:
binutils-doc debian-keyring g++-multilib g++-5-multilib gcc-5-doc libstdc++6-5-dbg gcc-multilib
autoconf automake libtool flex bison gdb gcc-doc gcc-5-multilib gcc-5-locales libgcc1-dbg
libgomp1-dbg libitm1-dbg libatomic1-dbg libasan2-dbg liblsan0-dbg libtsan0-dbg libubsan0-dbg
libcilkrts5-dbg libmpx0-dbg libquadmath0-dbg glibc-doc libstdc++-5-doc make-doc python-doc
python-tk python-setuptools-doc
The following NEW packages will be installed:
binutils build-essential dpkg-dev fakeroot g++ g++-5 gcc gcc-5 libalgorithm-diff-perl
libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan2 libatomic1 libc-dev-bin libc6-dev
libcc1-0 libcilkrts5 libdpkg-perl libexpat1-dev libfakeroot libfile-fcntllock-perl libgcc-5-dev
libgomp1 libitm1 liblsan0 libmpx0 libpython-all-dev libpython-dev libpython-stdlib libpython2.7
libpython2.7-dev libquadmath0 libstdc++-5-dev libtsan0 libubsan0 linux-libc-dev make
manpages-dev python python-all python-all-dev python-dev python-minimal python-pip
python-pip-whl python-pkg-resources python-setuptools python-wheel python2.7-dev
0 upgraded, 49 newly installed, 0 to remove and 0 not upgraded.
Need to get 61.1 MB of archives.
After this operation, 169 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
...etc...
Una cosa interessante accade di conseguenza: ora hai lo "standard" (e PEP consigliato) python2
e python3
(che sono solo collegamenti simbolici a Python 2.7 e Python 3.5):
$ type python3 python2 python python2.7 python3.5
python3 is /usr/bin/python3
python2 is /usr/bin/python2
python is /usr/bin/python
python2.7 is /usr/bin/python2.7
python3.5 is /usr/bin/python3.5
Ti consigliamo anche sudo apt-get install python3-pip
; prima di installare, hai:
$ type pip pip2 pip3
pip is /usr/bin/pip
pip2 is /usr/bin/pip2
-bash: type: pip3: not found
$ python2 -m pip --version
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)
$ python3 -m pip --version
/usr/bin/python3: No module named pip
Dopo l'installazione pip3
,
$ sudo apt-get install python3-pip
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
libpython3-dev libpython3.5-dev python3-dev python3-setuptools python3-wheel python3.5-dev
Suggested packages:
python-setuptools-doc
The following NEW packages will be installed:
libpython3-dev libpython3.5-dev python3-dev python3-pip python3-setuptools python3-wheel python3.5-dev
0 upgraded, 7 newly installed, 0 to remove and 0 not upgraded.
Need to get 38.0 MB of archives.
After this operation, 55.2 MB of additional disk space will be used.
Do you want to continue? [Y/n]
...etc...
Le versioni risultanti:
$ type python python2 python3 pip pip2 pip3
python is /usr/bin/python
python2 is hashed (/usr/bin/python2)
python3 is hashed (/usr/bin/python3)
pip is /usr/bin/pip
pip2 is /usr/bin/pip2
pip3 is /usr/bin/pip3
$ pip --version
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)
$ pip3 --version
pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)
$ python2 -m pip --version
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)
$ python3 -m pip --version
pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)
E un'ultima cosa prima di poter iniziare e iniziare l'installazione di tutti i tuoi moduli PyPI Python preferiti: probabilmente dovrai aggiornare pip stesso (sia pip2 che pip3, separatamente; inoltre, non importa se pip
viene invocato tramite gli python
eseguibili o il pip
eseguibili, gli aggiornamenti effettivi sono memorizzati in /usr/lib
):
$ sudo -H python2 -m pip install --upgrade pip
...
$ sudo -H python3 -m pip install --upgrade pip
...
Ora puoi eseguire la versione stand-alone pip
o inclusa in bundle python
(tramite python -m pip {command}
).
[1] Riepilogo storico: Ubuntu precedente aveva solo Python 2.6, quindi tutti i vari metodi per installare Python 2.7+. Successivamente, dopo che Python 2.7 è stato aggiunto ai repository pubblici, abbiamo ancora avuto la stessa sfida di installare il Python 2.7 più recente con le ultime correzioni, che era (troppo) frequentemente necessario. La situazione oggi è molto migliore / più semplice: l'attuale Python 2.7 e 3.5 (fondamentalmente le uniche due versioni della piattaforma Python che interessano) che ora sono nei repository pubblici sono molto stabili, quindi ora dobbiamo solo preoccuparci di installare l'ultima moduli Python , non l'ultimo Python . Quindi ora il "problema dell'ultima versione" di Python si è spostato parzialmente dai apt
repository del sistema operativo e in PyPI e pip
.)
sudo apt-get install python-2.7 python-pip