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

125

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

Очевидно, я понимаю, что могу установить, используя tar-архив с исходным кодом, однако я бы предпочел не устанавливать из исходного кода, а вместо этого использовать менеджер пакетов, поскольку это то, для чего он нужен. Конечно, где-то уважаемая строит .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  
Гарри
источник
Вы когда-либо получали E: Couldn't find any package by regex 'python3.5'и, следовательно, не смогли установить через apt-get install python3.5?
Чарли Паркер
похожий вопрос: askubuntu.com/questions/310441/…
Чарли Паркер
некоторые хорошие предложения здесь: quora.com/…
Чарли Паркер
1
@CharlieParker Вы пытались установить Anaconda ?
М. Бесерра

Ответы:

169

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

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

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

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

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

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

cd /usr/bin
sudo rm python3

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

Nephente
источник
5
для Noob там, не символическая ссылка! также не символическая ссылка просто означает, что вам нужно набрать python3.5 из командной строки для запуска python 3.5
Крис Хоукс
4
Не могли бы вы указать мне, как я могу использовать пипс 3,4 с этим 3,5?
Груша,
2
@ kondra007 Я следовал инструкциям из pip.pypa.io/en/stable/install (пожалуйста, прочтите там предупреждение ), и эти две команды wget https://bootstrap.pypa.io/get-pip.py; sudo python3.5 get-pip.pyдали мне рабочий пипс для python 3.5, но pip3.4 больше не работает. Если кто-то знает лучше, пожалуйста, прокомментируйте
ndemou
2
Также, чтобы установить Python3.5 по умолчанию ~$ vim ~/.bashrcи добавить это alias python=python3.5. затем~$source ~/.bashrc
Кришнадас ПК
1
Советы: если add-apt-repository: command not found, запустить apt-get install software-properties-common python-software-propertiesдля установки
Mithril
35

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

Шаги:

sudo apt-get install libssl-dev openssl
wget https://www.python.org/ftp/python/3.5.0/Python-3.5.0.tgz
tar xzvf Python-3.5.0.tgz
cd Python-3.5.0
./configure
make
sudo make install

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

sudo ln -fs /opt/Python-3.5.0/Python /usr/bin/python3.5
джойди бхаттачарджи
источник
3
ОП сказал, что не хочет компилировать из источника
Майкл Бейтс
3
Да ты прав. Кроме того, компиляция из исходного кода может привести к возникновению некоторых проблем с зависимостями в будущем. Но так я решил это. Если есть лучший способ, я бы определенно хотел узнать.
Joydeep Bhattacharjee
5
Рассмотрим ./configure --enable-optimizations stackoverflow.com/questions/41405728/…
warvariuc
1
@CharlieParker, потому что Python не предназначен для конкретной ОС. Он предназначен для запуска на любой платформе. Для Linux это означает, что либо каждая версия должна быть скомпилирована и распространена для каждой версии каждого дистрибутива Linux (которых много), либо они распространяют исходный код и позволяют пользователю самостоятельно скомпилировать его в среде, в которой он будет используемый. Последнее гораздо более осуществимо.
CJStuart
2
Вам также нужен компилятор c / c ++ изapt-get install build-essential
bato3
13

Просто следуйте этим шагам (проверено):

Шаг 1 - Установите необходимые пакеты

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

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

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

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

cd /usr/src
sudo 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.2
sudo ./configure
sudo make altinstall

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

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

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

$ python3.5 -V

Python 3.5.2

Источник .

Билал
источник
2
+1 за использование altinstall по умолчанию. Там не так много реальных сценариев, где вы можете жить только с одной версией. Даже в системах с Python3 по умолчанию вы можете быть вынуждены установить Python в обратном порядке -> Python2 вместо этого или добавить Python2.
erm3nda
1
Я получил ошибку, как описано здесь - bugs.python.org/issue31652 пришлось запустить, sudo apt-get install libffi-devчтобы устранить ее.
Нишан Чатуранга
Я также добавил бы, sudo apt-get install liblzma-devчтобы включить поддержку lzma.
в.грабовец
6

Насколько я могу сказать, по крайней мере, в док-контейнере, можно определенно apt-getPython 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 python3
apt-get install python3-pip

и для проверки работоспособности pip загрузим что-нибудь:

pip3 install tensorflow

у меня все вроде нормально работает.

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


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


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

docker pull continuumio/anaconda3
docker 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. Просто хотел напомнить людям.

Чарли Паркер
источник
1
«в контейнере Docker» - это очень общее утверждение: все зависит от того, на каком изображении основан контейнер, например, на какой версии Ubuntu. Более того, могут быть второстепенные версии, такие как 3.5 или 3.6, которые недоступны ни в одной версии Ubuntu (например, 14.04)
giorgiosironi
2

Есть несколько более новых дистрибутивов Python, доступных для установки через apt-get, перечисленных в Ubuntu Packages.

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

python2.7

python3.2

python3.4

python3.5

python3.6

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

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

Старейшина Гик
источник
версии Python, доступные в Ubuntu Repo , не являются новейшей версией Python .
yaitloutou
@yaitloutou В вопросе говорится, что «новее», а не «новее». Не стесняйтесь писать лучший ответ.
Старейшина Компьютерщик
Вы правы, но так как новее относительно того, что не указано, я интерпретировал его как новейший :)
yaitloutou
@yaitloutou Не стесняйтесь и непременно напишите лучший ответ! Я уверен, что это будет оценено.
Старейшина Гик
Я только начал проявлять активность здесь, и я все еще учусь. Извините, если вы нашли мой комментарий к вашему ответу навязчивым
yaitloutou
0

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

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

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

devrimbaris
источник
11
Я думаю, вам нужно установить версию Python, которую вы хотите, прежде чем использовать ее в виртуальной среде.
Нзбуу
1
Вы устанавливаете нужную версию python в виртуальной среде, а затем изменяете свой путь, связанный с python, просто запуская скрипт «activ» в виртуальной среде.
Девримбарис
На самом деле это именно то, что я хочу сделать - самое первое, что я попытался сделать после того, как последовал ответ @ Nephente, было указать на это с помощью virtualenv -p. Но он взорвался сообщением «ImportError: невозможно импортировать имя« HTTPSHandler »».
Майкл Шепер
1
почему это было отвергнуто? виртуальные envs обычно работают нормально.
Чарли Паркер
Как установить виртуальную среду в Ubuntu (как в вашем предложении), но с Python 3.5?
Чарли Паркер
0

Conda активно обновляется и позволяет вам устанавливать несколько версий Python в управляемых системах без необходимости устанавливать все самостоятельно. Проблемы с бинарным расширением могут быть решены во многих цепочках управляемых зависимостей / pip, которые использует Anaconda.

RobotHumans
источник