Как мне установить другую версию Python с помощью apt-get?

Как я могу установить другую версию Python с помощью apt-get?

Очевидно, я понимаю, что могу установить с помощью исходного кода tar ball, однако я бы предпочел не устанавливать из исходного кода, а вместо этого использовать менеджер пакетов, поскольку именно для этого он и существует. Наверняка где-нибудь авторитетные сборки .deb-файлов для последних версий Python (почему python.org не надо - это выше моего понимания), на которые я могу сослаться.

Что мне нужно сделать, чтобы ссылаться на них, и какие проблемы это может создать при обновлении до следующей версии?

Если нет другого способа, кроме сборки из исходного кода, есть ли (псевдо) пакет, который я могу установить, который обеспечит все необходимые зависимости без необходимости находить и устанавливать каждую по отдельности? Чтобы я не получал:

The necessary bits to build these optional modules were not found:_bz2                  _curses               _curses_panel      _dbm                  _gdbm                 _lzma              _sqlite3              _ssl                  _tkinter           readline              zlib  

Феликс Крулл управляет PPA, предлагающим в основном какой-нибудь версия Python (серьезно, есть сборка 2.3.7 для vivid ...) для многих выпусков Ubuntu на https://launchpad.net /~deadsnakes/+архив/ubuntu/ppa.

Делайте как обычно:

sudo add-apt-repository ppa:deadsnakes/ppasudo apt-get updatesudo apt-get install python3.5

Он не будет перезаписывать ваш существующий python3.4 который по-прежнему имеет символическую ссылку как python3.

НЕ меняйте символическую ссылку! По-видимому, существует множество системных функций, которые не работают должным образом с python3.5.

Я попробовал это, а потом не смог открыть терминал, программу обновления программного обеспечения,...

cd /usr/binsudo rm python3

Обновление до версии Wily приведет к адаптации мета-пакета python3 чтобы указать на python3.5. Я не ожидаю никаких поломок, но на данный момент внешний репозиторий больше не нужен. Поэтому, чтобы быть действительно в безопасности, вы можете очистить PPA перед выполнением обновления.

Этот Ссылка на Youtube помог мне установить его.

Эти шаги заключаются в следующем:

sudo apt-get install libssl-dev opensslwget https://www.python.org/ftp/python/3.5.0/Python-3.5.0.tgztar xzvf Python-3.5.0.tgzcd Python-3.5.0./configuremakesudo make install

Чтобы проверить, установлен ли python, введите python3.5 ещё:

sudo ln -fs /opt/Python-3.5.0/Python /usr/bin/python3.5

Просто выполните следующие действия (проверено) :

Шаг 1 – Установите Необходимые Пакеты

Используйте следующую команду для установки предварительных условий для Python перед его установкой.

sudo apt-get install build-essential checkinstallsudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev

Шаг 2 – Загрузите Python 3.5.2

Загрузите Python, используя следующую команду с официального сайта python. Вы также можете загрузить последнюю версию вместо указанной ниже.

cd /usr/srcsudo wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz

Теперь извлеките загруженный пакет.

sudo tar xzf Python-3.5.2.tgz

Шаг 3 – Скомпилируйте исходный код Python

Используйте приведенный ниже набор команд для компиляции исходного кода python в вашей системе с помощью altinstall.

cd Python-3.5.2sudo ./configuresudo make altinstall

make altinstall используется для предотвращения замены двоичного файла python по умолчанию /usr/bin/python.

Шаг 4 – Проверьте версию Python

Проверьте последнюю установленную версию python, используя приведенную ниже команду.

$ python3.5 -VPython 3.5.2

Источник.

пьенв

Этот метод не использует apt-get, но это, я считаю, лучший вариант, доступный сегодня, поскольку он может легко скомпилировать для вас любую версию Python из исходного кода, так что вам не нужно полагаться ни на какие PPA.

https://github.com/pyenv/pyenv

Pyenv позволяет управлять несколькими версиями Python без sudo для одного пользователя, подобно Node.js NVM и Ruby RVM.

Установить Pyenv:

curl https://pyenv.run | bash

Затем добавьте в свой .bashrc:

export PATH="${HOME}/.pyenv/bin:$PATH"eval "$(pyenv init -)"eval "$(pyenv virtualenv-init -)"

Найдите версию Python для установки:

pyenv install --list

Установите нужную вам версию python:

# Increase the chances that the build will have all dependencies.# https://github.com/pyenv/pyenv/wiki/Common-build-problemssudo apt build-dep python3sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \  libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \  xz-utils tk-dev libffi-dev liblzma-dev python-openssl git# Build and install a Python version from source.pyenv install 3.8.0

Список доступных версий Python:

pyenv versions

Теперь у нас есть:

* system (set by /home/cirsan01/.pyenv/version)  3.8.0

Выберите другую версию python:

pyenv global 3.8.0python --versionpython3 --version

Оба выхода:

Python 3.8.0

Теперь мы можем приступить к установке и использованию пакетов в обычном режиме:

pip install cowsaypython -c 'import cowsay; cowsay.tux("Python is fun")'cowsay 'hello'

Мы можем подтвердить, что все установлено локально в нашей чистой среде с помощью:

python -c 'import cowsay; print(cowsay.__file__)'which cowsay

Мы видим, что which python указывает на:

~/.pyenv/shims/python

потому что ~/.pyenv/shims добавляется к PATH с помощью rc-скриптов.

Чтобы разобраться дальше. Глобальная версия - это то, что определяется:

~/.pyenv/version

который теперь содержит:

3.8.0

Для каждого использования проекта

В предыдущем разделе мы рассмотрели, как использовать pyenv в глобальной настройке.

Однако то, что вы обычно хотите, - это установить конкретную версию python и пакета для каждого проекта. Вот как это сделать.

Сначала установите желаемую версию Python, как и раньше.

Затем из каталога вашего проекта установите желаемую версию python с помощью:

pyenv local 3.8.0

который создает файл .python-version содержащий строку версии.

А теперь давайте установим пакет локально только для нашего проекта: TODO: кажется, нет хорошего способа: https://stackoverflow.com/questions/30407446/pyenv-choose-virtualenv-directory/59267972#59267972

Теперь, когда кто-то захочет использовать ваш проект, он сделает:

pyenv local

который устанавливает правильную версию Python.

Связанные темы:

Протестировано на Ubuntu 18.04, pyenv 1.2.15.

Насколько я могу судить, по крайней мере, в контейнере docker можно окончательно apt-get python 3.

Сначала я столкнулся с контейнером ubuntu с контейнером:

docker run -it --rm ubuntu:latest bash

затем по какой-то причине потребовалось обновить некоторые материалы ubuntu, что я и сделал (внутри контейнера):

apt-get update && apt-get install -y build-essential git libjpeg-dev

а потом я просто установил python3, и, похоже, он автоматически получил python 3.5:

apt-get install python3apt-get install python3-pip

и чтобы проверить, работает ли pip, давайте загрузим что-нибудь:

pip3 install tensorflow

кажется, у меня все работает нормально.

Важное примечание: похоже, что если у вас уже установлен python 3.4, то apt-get install python3 не работает, потому что в нем говорится, что он у вас уже есть. Похоже, это была одна из моих проблем, потому что я начинал с образа docker из tensorflow (в частности gcr.io/tensorflow/tensorflow:latest-devel-py3) и что-то в этом изображении (я предполагаю, что у них уже есть python 3.4, но это может быть что-то еще) не позволило мне обновить мой python, чтобы получить python 3.5.


кредит: Я обнаружил это, когда задал следующий вопрос: https://stackoverflow.com/questions/42122826/can-one-use-python-3-5-in-a-docker-container-based-out-of-the-tensorflow-docker


Примечание: можно также просто установить Anaconda. Для примера docker можно сделать:

docker pull continuumio/anaconda3docker run -i -t continuumio/anaconda3 /bin/bash

с их официального сайта: https://hub.docker.com/r/continuumio/anaconda3/

Это решение устанавливает python 3.6, но я уверен, что если вы посмотрите на него там, вы сможете получить python 3.5, если это то, что вы хотите.

Примечание: вероятно, вам все равно следует использовать виртуальную среду, такую как virtual env или conda / anaconda, если вы все равно не используете docker. Просто хотел напомнить людям.

Существует ряд новых дистрибутивов python, доступных для установки через apt-get, перечисленных в Пакеты Ubuntu

в качестве примера в настоящее время доступны следующие версии:

python2.7

python3.2

python3.4

python3.5

python3.6

Доступность в определенной степени зависит от версии Ubuntu. Например, версия 3.5 доступна для Android, Yakkety и Zesty, а версия 3.6 доступна для Yakkety и Zesty, но вы должны включить Хранилище вселенной если не включено, чтобы получить их с помощью apt-get. Чтобы проверить доступность вашей версии Ubuntu, перейдите по ссылкам выше.

Быстрый взгляд показывает, что этот ответ также по-прежнему действует, поскольку этот PPA имеет значение 3.6 даже для Trusty.

Я бы подумал об использовании виртуальных сред вместо установки версий python через apt-get.

Использование виртуальных сред, смотрите здесь, это хорошая практика для разработки на python. Они позволяют вам изолировать вашу среду python от установленных в системе версий python.

Кроме того, вам не нужно получать доступ к sudo при установке какой-либо библиотеки (через pip и т.д.).

Конда активно обновляется и позволяет вам устанавливать несколько версий python в управляемых VENV без утомительной самостоятельной настройки. Проблемы с путями двоичных расширений, возможно, были решены во многих цепочках управляемых зависимостей /pip anaconda, которые он использует.

Это важный обновление к Ответ Нефенте (т.е. топ-рейтинг) по состоянию на 2019-10 годы (с выдержками оттуда, используемыми в CC BY-SA 4.0):

Феликс Крулл управляет PPA, предлагающим множество версий Python для многих выпусков Ubuntu по адресу https://launchpad.net /~deadsnakes/+архив/ubuntu/ppa. Однако поддерживаются не все комбинации. Если желаемая комбинация не поддерживается, но желаемая версия Python доступна там для более старой версии Ubuntu, вы все равно можете установить ее следующим образом (здесь приведен пример Python 3.5).:

sudo add-apt-repository "deb http://ppa.launchpad.net/deadsnakes/ppa/ubuntu $(lsb_release -sc) main"sudo apt-get updatesudo apt-get install python3.5 python3.5-venv

Он не будет перезаписывать ваш существующий Python 3.x, который по-прежнему имеет символическую ссылку как python3 впоследствии. Способ установки пакетов из более старой версии Ubuntu заключается в следующем отсюда. Я только что использовал это для установки Python 3.5 под Ubuntu 19.04.

@CharlieParker Ты пробовал установить Anaconda ?

вы когда-нибудь получали "E: не удалось найти какой-либо пакет с помощью регулярного выражения “python3.5” и, следовательно, не удалось установить с помощью “apt-get install python3.5”?

аналогичный вопрос: python3 - How do I install the latest Python version in Ubuntu? - Ask Ubuntu

несколько хороших предложений здесь: https://www.quora.com/Why-is-it-very-difficult-to-install-Python-3-5-for-Ubuntu

связанный с этим вопрос, кажется более простым, но не может заставить его работать: 16.04 - How do I install python 3.5.2? - Ask Ubuntu

еще один связанный с этим вопрос: software installation - Is it possible to install Python 3.x in 14.04 LTS, or upgrade from Python 2.7.6 to 2.7.8? - Ask Ubuntu

@M.Becerra пока нет, это было следующее, что я собирался попробовать. Но предостережение заключается в том, что я использую все это в контейнере docker, поэтому я хотел оставить такое решение до конца, если только оно мне действительно не понадобится.

этот ответ должен быть полезен, потому что текущий принятый ответ, по-видимому, предоставляет версию python без pip. Посмотрите, как это исправить, здесь: ubuntu - How does one install/fix a failed numpy installation that works on python 3.4 but not in 3.5? - Stack Overflow

@M.Becerra Я попробовал anaconda, кажется, она работает нормально. Здесь тоже есть ответ, если вы хотите его увидеть. Спасибо!