Продовжуючи документувати це для останніх версій Ubuntu 1 : для сервера Ubuntu 16.04.1 стандартним Python є версія 3.5, а Python 2.7 не встановлений за замовчуванням. У новому встановленні (зауважте, що немає навіть python
виконуваного файлу):
$ 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>
Примітка: перш ніж продовжувати, ви, ймовірно, захочете зробити швидку sudo apt-get update
, sudo apt-get upgrade
і sudo apt-get dist-upgrade
(будь ласка, відмітьте, що саме ці команди виконують насправді; я припускаю, що тут буде встановлено нове.)
Встановити python 2.7 так само просто:
$ sudo apt-get install python2.7
Початковий вихід встановлення python 2.7 такий:
$ 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...
Після установки 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
Але проблема все ще є, оскільки ви ще не можете встановити модулі PyPI через, pip
наприклад, якщо ви хочете ноутбук jupyter, або найновіший scipy або numpy (тощо), ви захочете встановити pip
і потім pip install
ті, і все ще звертаєтесь до apt-get
встановити будь-які необхідні системні залежності, наприклад, графікз або основні системні бібліотеки.
$ 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
Отже, знову встановити pip, це так просто, як 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
Вам знадобиться як python-pip
для Python 2.7, так pip
і python3-pip
для Python 3 pip
. Установка через apt-get
обов'язково встановить необхідні залежності; наприклад, ось вихід для установки 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...
У результаті цього відбувається щось цікаве: тепер у вас є "стандарт" (і рекомендується PEP) python2
і python3
(які просто посилаються на python 2.7 та 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
Ви також захочете sudo apt-get install python3-pip
; перед встановленням у вас є:
$ 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
Після установки 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...
Отримані версії:
$ 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)
І остання річ, перш ніж ви зможете розпочати встановлення всіх улюблених модулів Python PyPI: вам, мабуть, доведеться оновити pip (і pip2, і pip3, окремо; також не має значення, чи pip
буде викликано його через python
виконувану версію або pip
виконувані файли, фактичні оновлення зберігаються в /usr/lib
):
$ sudo -H python2 -m pip install --upgrade pip
...
$ sudo -H python3 -m pip install --upgrade pip
...
Тепер ви можете запускати або окрему, pip
або версію в комплекті python
(через python -m pip {command}
).
[1] Історичний підсумок: старший Ubuntu мав лише Python 2.6, тому всі різні методи встановлення Python 2.7+. Пізніше, після того, як Python 2.7 був доданий до загальнодоступних сховищ, у нас все ще було те саме завдання встановити найновіший Python 2.7 з останніми виправленнями, що було (занадто) часто необхідним. Сьогодні ситуація набагато краща / простіша: нинішні Python 2.7 та 3.5 (в основному єдині дві версії платформи Python, про які люди піклуються), які зараз перебувають у загальнодоступних репортах, є дуже стабільними, тому зараз нам справді варто потурбуватися про встановлення останніх модулі python , не останній python . Тож тепер "остання версія проблеми" Python частково перемістилася з apt
репозиції ОС та в PyPI & pip
.)
sudo apt-get install python-2.7 python-pip