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

363

Я пробовал нормальный способ, sudo apt-get install python3.6но ... ну ... это не сработало.

Итак, как бы я пошел по этому поводу? (Я бы предпочел не создавать его самостоятельно)

Я использую Ubuntu 16.04.

Olian04
источник
5
Возможно, Python 3.6 недоступен для вашего дистрибутива. Если вы установили aptitude, запуститеaptitude search python3
Ridgy

Ответы:

525

Ubuntu 14.04 (Trusty), 16.04 (Xenial)

Если вы используете Ubuntu 14.04 или 16.04, вы можете использовать PPA deadsnakes Феликса Крулла по адресу https://launchpad.net/~deadsnakes/+archive/ubuntu/ppa :

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

Кроме того, вы можете использовать PPA J Fernyhough по адресу https://launchpad.net/~jonathonf/+archive/ubuntu/python-3.6 :

sudo add-apt-repository ppa:jonathonf/python-3.6
sudo apt-get update
sudo apt-get install python3.6

Ubuntu 16.10, 17.04

Если вы используете Ubuntu 16.10 или 17.04, то Python 3.6 находится в репозитории юниверсов, поэтому вы можете просто запустить:

sudo apt-get update
sudo apt-get install python3.6

После установки для Ubuntu 14.04, 16.04, 16.10 и 17.04

Чтобы вызвать интерпретатор Python 3.6, запустите python3.6.

Ubuntu 17.10 и 18.04 (Bionic)

Ubuntu 17.10 и 18.04 уже поставляются с Python 3.6 по умолчанию. Просто беги, python3чтобы вызвать его.

edwinksl
источник
5
Обратите внимание, что python3.6 в Ubuntu 16.10 - это бета-версия, в которой есть некоторые проблемы (например, очень болезненная утечка памяти, dictкоторая проявляется в некоторых редких случаях).
Мариус Гедминас
102
ВНИМАНИЕ ! Ни при каких обстоятельствах не поддавайтесь искушению бежатьsudo apt remove python3.5или что-либо подобное; Python более фундаментально встроен в Ubuntu, чем вы думаете, и вы можете прервать установку Ubuntu. Если вы хотитеpython3сопоставитьpython3.6, создайте символическую ссылку вместо этого!
Хью Уолтерс
19
Я вижу, что нет python3.6-pipпакета, и поэтому я использовал curl https://bootstrap.pypa.io/get-pip.py | sudo python3.6для установки pip.
Acumenus
5
Каким-то образом питон ppa:jonathonf/python-3.6прибыл с сломанным пипсом и без easy_install 14.04. Тем не менее, мне удалось это исправить, установив easy_install, а затем переустановив pip с помощью «На curl https://bootstrap.pypa.io/ez_setup.py -o - | python3.6 && python3.6 -m easy_install pipвсякий случай, если кто-то
столкнется с
6
Как и некоторые другие комментаторы выше, у меня также были проблемы pipс установкой ppa:jonathonf/python-3.6. С другой стороны, ppa:deadsnakes/ppaработал без нареканий ( apt-get install python3.6 python3.6-venv -y).
Майкл Херрманн
133

Я бы порекомендовал pyenv, чтобы решить ваши проблемы. Он не использует Aptitude и включает в себя «создание его самостоятельно», но он полностью автоматизирован . Вы можете собрать и установить новую (или старую) версию Python, просто сказав pyenv install 3.6.0. Все работает как ваш пользователь, так что вам не нужно беспокоиться о том, чтобы испортить Python, используемый самой Ubuntu.

Кроме того, ответ на следующий вопрос «Как установить Python 3.7 с помощью apt-get?» имеет один и тот же ответ: pyenv update; pyenv install 3.7.0. Как правило, он будет работать в тот же день после выпуска, потому что вам не нужно ждать, пока кто-то еще упакует его для Ubuntu. Посмотреть все версии, которые вы можете установить сpyenv install --list

Установить pyenv

  1. Установите инструменты и заголовки, необходимые для сборки CPythons (экзотические Python, такие как 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 \
                            libffi-dev libsqlite3-dev tk-dev
    
    # optional scientific package headers (for Numpy, Matplotlib, SciPy, etc.)
    sudo apt-get install -y libpng-dev libfreetype6-dev    
  2. Запустите скрипт установщика (устанавливает pyenv и некоторые очень полезные плагины pyenv от оригинального автора; подробнее здесь )

    curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
  3. Добавьте строки инициализации к вашему ~/.profileили ~/.bashrc(это упоминается в конце сценария установки):

    export PATH="$HOME/.pyenv/bin:$PATH"
    eval "$(pyenv init -)"
    eval "$(pyenv virtualenv-init -)"
  4. Перезапустите вашу оболочку (закройте и откройте или exec $SHELL) или перезагрузите скрипт профиля. (например source ~/.bashrc)

Готово!

Настройка среды

Не трогать системный Python (как правило, плохая идея; службы уровня ОС могут полагаться на некоторые конкретные версии библиотек и т. Д.) Создать собственную среду, это просто! Даже лучше, нет sudo, для этого или pipустанавливает!

  1. Установите предпочитаемую версию Python (она загрузит исходный код и соберет его для вашего пользователя, ввод не требуется)

    pyenv install 3.6.0
  2. Сделайте это виртуальным, чтобы вы могли сделать других позже, если хотите

    pyenv virtualenv 3.6.0 general
  3. Сделайте это глобально активным (для вашего пользователя)

    pyenv global general
  4. Делай что хочешь с Python / pip и т. Д. Он твой.

Если вы хотите очистить свои библиотеки позже, вы можете удалить virtualenv ( pyenv uninstall general) или создать новую ( pyenv virtualenv 3.6.0 other_proj). Вы также можете иметь активную среду для каждого каталога: pyenv local other_projпоместите .python-versionфайл в вашу текущую папку, и каждый раз, когда вы вызываете Python или установленные в pip утилиты Python из нее или из нее, они будут отброшены pyenv.

Поиск неисправностей

  • bash: pyenv: command not found, fish: Unknown command 'pyenv'

    1. Проверь $PATH, должна быть одна запись, которая заканчивается чем-то вроде .pyenv/bin. Если он отсутствует, убедитесь, что вы выполнили # 3 И # 4 (перезапустите вашу оболочку) в разделе Установка pyenv выше.
  • pyenv: no such command 'virtualenv'

    1. Если вы не использовали скрипт установщика, скорее всего, вы установили только корневой пакет pyenv. Смотрите pyenv-virtualenv для инструкций по добавлению плагина.
    2. Если вы использовали установочный скрипт, проверьте, отображается ли он с pyenv commands.
Ник Т
источник
1
Есть одно предостережение при использовании pyenv с Python 2.x (или очень старых выпусков 3.x до появления внутреннего представления новой строки Unicode): pyenv использует флаги компиляции по умолчанию для восходящего потока и строит с помощью 16-битных строк Unicode. Обычно дистрибутивы Linux создаются с 32-битными строками Unicode. Это вызывает боль, когда вы pip устанавливаете некоторые вещи как в pyenv, так и в non-pyenv Pythons, из-за кэширования колеса pip.
Мариус Гедминас
@marius, зачем тебе устанавливать версию без pyenv после ее установки?
Ник Т
3
Я не знаю, но я обнаружил эту проблему, помогая кому-то в IRC отладить проблему, когда определенный пакет Python (lxml?) Не работал из-за этого. Так происходит на практике с некоторыми людьми, и это стоит знать. (Обходной путь есть rm -r ~/.cache/pip/wheels/.)
Мариус Гедминас
1
Должен ли pyenvбыть установлен для каждого пользователя, который нуждается в Python? И если у меня будет 3 пользователя, которым нужна одна и та же версия Python 3.6, то придется скомпилировать ее 3 раза и это займет 3х дискового пространства? Если это правда, то это отстой…: /
Sarge Borsch
1
@SargeBorsch по умолчанию (если вы используете pyenv-installer) устанавливается пользователем, но ничто не мешает вам установить его /optили что-то еще и добавить несколько символических ссылок /bin. Я считаю, что это исключительно для пользователя, чтобы быть чрезвычайно полезным; пользователям не нужно sudo (кроме libs). Дисковое пространство дешево.
Ник Т
14

Это зависит от того, какую версию Ubuntu вы используете.

Ubuntu 16.10 и Ubuntu 17.04

Поскольку Python 3.6 установлен в хранилище юниверсов Ubuntu 16.10 и Ubuntu 17.04, вы можете напрямую установить Python 3.6 из хранилища. Просто используйте команды ниже:

sudo apt update
sudo apt install python3.6

Ubuntu 16.04

Есть два способа установить Python3.6 на Ubuntu 16.04

  • Скомпилируйте и установите Python 3.6 в Ubuntu 16.04
  • Установите python 3.6 на Ubuntu 16.04 из PPA

1. Скомпилируйте и установите Python 3.6 в Ubuntu 16.04.

Установите необходимые зависимости, загрузите исходный код python 3.6, соберите среду и установите

sudo apt install build-essential checkinstall
sudo apt install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tar.xz
tar xvf Python-3.6.0.tar.xz
cd Python-3.6.0/
./configure
sudo make altinstall

2. Установите python 3.6 на Ubuntu 16.04 из PPA

Вы можете установить Python 3.6 из PPA, используя команды ниже

sudo add-apt-repository ppa:jonathonf/python-3.6
sudo apt update
sudo apt install python3.6

Если Python 3.6 установлен правильно, вы можете вызвать интерпретатор python, запустив его python3.6в терминале.

Надеюсь, это поможет. Если у вас есть какие-либо проблемы, вы можете проверить это сообщение в блоге здесь .

Ариаль Бибек
источник
2
По сути, это копия принятого ответа. Где ценность вашего ответа?
Марк Ванхомиссен
2
Первый шаг в Ubuntu 16.04 предназначен для тех, кто по какой-то причине хочет скомпилировать и установить python 3.6. Процесс компиляции и установки Python 3.6 в Ubuntu 16.04 недоступен в принятом ответе или любом ответе в теме по этому вопросу. Другие пункты должны прояснить версию Ubuntu и как она отличается от других принятых ответов.
Арьял Бибек
1
Установки PPA 16.04 (Mint) выглядят неработающими. Установка из источника информации полезна.
сумасшедший ежик
13

Если вы не можете найти какие-либо рабочие репозитории, вы можете попробовать скомпилировать себя из исходного кода. Вы можете найти исходный код на странице загрузки . Затем скачайте и распакуйте архив; например для Python-3.6.1.tgz.

Процесс распаковки файла tgz:

tar -xvzf /path/to/yourfile.tgz

Когда вы найдете путь к файлу, к которому был распакован файл, запустите:

./configure
make
make altinstall

И, надеюсь, это должно решить проблему для вас.

Вовремя Берлаке
источник
4
Вопрос говорит (id preferably not build it on my own). Может быть, было бы лучше пойти по aptмаршруту, если это возможно.
Странник
Хорошо, я посмотрю, смогу ли я найти альтернативные репозитории для вас. Вы уже сами могли искать в Google альтернативные репозитории? Я не хочу предлагать вещи, которые вы уже попробовали.
Как раз вовремя Берлейк
Я не ОП. Просто делаю предложение. Я не мог найти PPA для 3.6, поэтому строительство может быть необходимым маршрутом. Вы, вероятно, должны указать это в своем ответе.
TheWanderer
Ваши команды make не будут работать в системе, в которой пользователь никогда ничего не создавал, так как требуется много пакетов. "sudo apt install build-essential libssl-dev zlib1g-dev libncurses5-dev libncursesw5-dev libreadline-dev libsqlite3-dev libgdbm-dev libdb5.3-dev libbz2-dev libexpat1-dev liblzma-dev tk-dev"
Джо,
4

Для Ubuntu 15.10 я успешно установил его, используя этот метод:

sudo add-apt-repository ppa:jonathonf/python-3.6

Но я отредактировал этот файл:

sudo vi /etc/apt/sources.list.d/jonathonf-ubuntu-python-3_6-wily.list

И я изменил коварный к испытанным , а затем:

sudo apt-get update
sudo apt-get install python3.6
Хасан Кетаби
источник
12
Убунту 15.10? Это прошло EOL несколько месяцев назад. Время обновить.
Edwinksl
0

Во-первых, следуйте другим ответам, чтобы установить Python 3.6 или 3.7. Затем, если вы хотите установить пакеты PyPi, такие как OpenEXR через pipвас, вы можете получить некоторые ошибки. Некоторые из них (например, для пакета OpenEXR PyPi) могут быть решены путем установки пакета разработки Python для только что установленного Python. Это можно сделать, используя следующие:

sudo apt-get install python3.6-dev

или же

sudo apt-get install python3.7-dev

эмир
источник
0

Возможно, предположить, что Конда не плохая идея. Я думаю, что это по крайней мере проще, чем использовать pyenv. Но, возможно, все-таки это зависит от того, что вы собираетесь делать с Python, потому что я думаю, что с Conda у вас могут возникнуть дополнительные пакеты.

РЕДАКТИРОВАТЬ : вероятно, стоит упомянуть, что после установки версии Python по умолчанию Conda, вы можете установить нужную версию, здесь 3.6, используя condaкак

conda install python==3.6
arsaKasra
источник