Я хочу установить последний tar-файл Python на Ubuntu, загруженный с Ссылка .
Это правильный способ установки?
./configure
make
make install
Если нет, как это сделать?
Сначала установите некоторые зависимости:
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
Затем загрузите, используя следующую команду:
version=2.7.13
cd ~/Downloads/
wget https://www.python.org/ftp/python/$version/Python-$version.tgz
Извлеките и перейдите в каталог:
tar -xvf Python-$version.tgz
cd Python-$version
Теперь установите с помощью команды, которую вы только что пробовали, используя checkinstall
, чтобы упростить удаление при необходимости:
./configure
make
sudo checkinstall
Измените version
на любую нужную вам версию (например, version=2.7.1
или version=3.6.0
).
Если у вас действительно есть желание скомпилировать его самостоятельно, предпочтительным способом является использование DeadSnakes PPA для установки версий Python, которые не включены по умолчанию:
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python2.7
Также доступны другие версии, такие как python2.4
или python3.6
и т. д.
Продолжая документировать это для последних выпусков Ubuntu 1 : для сервера Ubuntu 16.04.1, по умолчанию Python - версия 3.5, а Python 2.7 установлен not по умолчанию , При новой установке (обратите внимание, что даже не существует исполняемого файла 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)
И еще одно, прежде чем вы сможете пойти и начать установку всех ваших любимых модулей PyPI python: вам, вероятно, придется самому обновить пипс (как 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 и amp; 3.5 (в основном, только две версии платформы Python, о которых люди заботятся), которые сейчас находятся в публичных репозиториях, очень стабильны, поэтому теперь нам действительно нужно беспокоиться об установке последних python modules , а не последних < эм> питон . Итак, теперь проблема «последней версии Python» перенесла частично из OS repos & amp; apt
и в PyPI & amp; pip
.) Р>
12,04
Если вы следуете ответу Achu , то термин libread5-dev
должен быть изменен на libreadline-gplv2-dev
. Таким образом, полная команда:
sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
Вы также можете скачать и установить его с помощью pyenv
#Install Pyenv
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
export PATH=~/.pyenv/bin:/usr/local/hadoop/bin/:$PATH
echo 'export PYENV_ROOT="~/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
#Install Python
pyenv install 2.7.8
pyenv global 2.7.8
pyenv install 3.4.5
pyenv global 3.4.5
В основном зеркало этого ответа с измененным вводом
Я бы рекомендовал pyenv . Он автоматизирует процесс сборки, кроме установки зависимостей заголовков (см. Ниже). Вы можете создать и установить новую (или старую) версию Python, просто указав pyenv install 3.6.0
. Все работает как ваш пользователь, поэтому вам не нужно беспокоиться о испортил Python , используемый самим Ubuntu. Р>
В отличие от некоторых опций, основанных на apt-repo (например, deadsnakes), он обычно будет работать в тот же день после релиза после pyenv update
, потому что вам не нужно ждать, пока кто-то еще его упакует. Посмотрите все версии, которые вы можете установить с помощью pyenv install --list
Установить инструменты и заголовки, необходимые для создания CPythons (экзотические питоны, такие как PyPy или Jython, могут иметь другие зависимости). Git используется pyenv, плюс он также позволяет создавать / устанавливать ветви источника, поэтому вы можете установить все, что 3.8 сейчас, т. Е. Главная ветвь CPython с GitHub:
sudo apt-get install -y git
sudo apt-get install -y build-essential libbz2-dev libssl-dev libreadline-dev \
libsqlite3-dev tk-dev
# optional scientific package headers (for Numpy, Matplotlib, SciPy, etc.)
sudo apt-get install -y libpng-dev libfreetype6-dev
Запустите скрипт установщика (устанавливает pyenv и некоторые очень полезные плагины pyenv оригинальным автором, см. здесь для более)
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
Добавьте строки инициализации к вашим ~/.profile
или ~/.bashrc
(он упоминает его в конце скрипта установки):
export PATH="~/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
Перезапустите оболочку (закрыть и откройте или exec $SHELL
) или перезагрузите скрипт профиля. (например, source ~/.bashrc
)
Готово!
Чтобы не касаться системы Python (как правило, плохая идея, службы уровня ОС могут полагаться на некоторые конкретные версии библиотеки и т. д.), создать свою собственную среду, это просто! Еще лучше, нет sudo
, для него или pip
устанавливается!
Установите предпочтительную версию Python (это загрузит источник и построит его для вашего пользователя, без ввода)
pyenv install 3.6.0
Сделайте его виртуальным, чтобы вы могли сделать других позже, если хотите
pyenv virtualenv 3.6.0 general
Сделать его глобально активным (для вашего пользователя)
pyenv global general
Сделайте то, что вы хотите с Python / pip, и т. д. Это ваше. Р>
Если вы хотите позже очистить свои библиотеки, вы можете удалить virtualenv ( pyenv uninstall general
) или создать новый ( pyenv virtualenv 3.6.0 other_proj
). Вы также можете использовать среду для каждого каталога: pyenv local other_proj
будет отбрасывать файл .python-version
в вашу текущую папку, и в любое время, когда вы будете использовать утилит Python или Python, установленных на нем или под ним, они будут подкреплены pyenv.
bash: pyenv: command not found
, fish: Unknown command 'pyenv'
$PATH
, должна быть одна запись, заканчивающаяся чем-то наподобие .pyenv/bin
. Если он отсутствует, убедитесь, что вы выполнили # 3 И # 4 (перезапустите оболочку) в разделе "Установка pyenv" выше. pyenv: no such command 'virtualenv'
pyenv commands
.