Рубрики
Без рубрики

Управление несколькими версиями Python на Ubuntu

Одно из моих самых ранних разочарований в разработке Python не имело ничего общего с самим Python, но R … Tagged DevOps, Architecture, Python.

Одно из моих самых ранних разочарований в разработке Python не имело ничего общего с самим Python, а скорее из непринужденного эзотерического Акт внедрения приложения Python. Кодовые буткемки и учебные пособия делают отличную работу по обучению студентов, как запускать код Python локально, но самые значимые приложения не работают на местных машинах: они работают на серверы , на Интернет , потому что это точка , не так ли? Может быть, я принимаю здесь сумасшедшие таблетки.

В зависимости от того, какую версию Ubuntu вы используете, ваш VPS, вероятно, поставляется с любым Python 2.7 , или оба Python 2.7 и Python 3.6 Анкет Но что, если вы не хотите запустить ни одну из этих версий? Если вы похожи на меня, вы могли бы попытаться заменить установку по умолчанию вашей системы и уничтожил вашу машину в процессе. В случае, если никто не сказал вам не делать этого, я сделаю почести: Не делай этого Анкет

Так что сделать мы делаем? Есть несколько вариантов, в том числе популярное решение использования Pyenv управлять несколькими установками Python. Это полностью приемлемое решение, но не будет тем, что мы исследуем сегодня по разным причинам, потому что:

  1. Я ненавижу, как Pyenv/VirtualEnv обрабатывают виртуальные среды по сравнению с Pipenv / Поэзия (скучаю по мне с этим $ Source venv/bin/activate дерьмо),
  2. Вероятно, лучше не возиться с вашим путем Python, где это возможно, и
  3. Использование встроенного менеджера Ubuntu «Альтернативной установки» на самом деле легче реализовать.

Мы собираемся пройтись по тому, как установить текущую последнюю версию Python ( Python 3.8 ) вместе с версиями System Python от Ubuntu.

Загрузка последней версии Python

Первый шаг должен быть знаком: нам нужно обновить зеркала и пакеты Ubunt

$ apt update && apt upgrade -y

Установка Python Fresh на машине Ubuntu требует, чтобы мы установили целую кучу обязательных библиотек, от которых зависит 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 libffi-dev zlib1g-dev

Здесь многие люди могут обратиться к установке Python через менеджер пакетов Ubuntu с apt-get установить python3.x . Вместо этого мы собираемся скачать и создать последнюю версию Python из Источник Анкет Есть несколько причин сделать это; Если версия Python достаточно новая, некоторые машины Ubuntu могли бы обновить зеркала, чтобы найти новейшую версию Python. Что еще более важно, так проще управлять несколькими установками Python таким образом.

Приведенные ниже строки будут загружать сжатый Python 3.8 Архив до вашего /opt папка и разкапливаться:

$ cd /opt
$ sudo wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz
$ sudo tar xzf Python-3.8.0.tgz

Прохладно. У нас скачал Python; Теперь нам просто нужно установить его … правильно.

Alt-установка Python из Source

Разочарование установки Python с apt-get установить python3.x Это то, что он будет установить Python просто отлично, но Ubuntu по -прежнему будет по умолчанию, чтобы использовать какую -либо версию Python по умолчанию. К счастью для нас, Ubuntu позволяет нам установить Дополнительный (Aka: альтернатива) версии Python, предоставив нам Сделать altinstall Команда:

$ cd Python-3.8.0
$ sudo ./configure --enable-optimizations
$ sudo make altinstall

Это может занять минутку, чтобы завершить. После того, как закончите, идите вперед и убедитесь, что версия Python 3 вы хотели установлено на вашей коробке:

$ python3 --version
Python 3.8.0

И вот это! Блестящий новый питон: Python 3.8. Ubuntu удобно делает это по умолчанию для нас.

Управление альтернативными установками Python

Итак, теперь у нас есть несколько версий Python, установленных на нашей машине. Существует системный Python 2.7, системный Python 3, и теперь наш недавно добавленный Python 3.8. Мы хотим оставить нашу систему по умолчанию в одиночку Python, но мы хотим разработать в Python 3.8 …. Так как же мы справляемся с этим?

К счастью, Linux рассказывает нам в этом сценарии с ОБНОВЛЕНИЕ-Альтертины командование Мы можем сказать Ubuntu, что у нас есть куча альтернативных версий одного и того же программного обеспечения на нашей машине, что дает нам возможность легко переключаться между ними. Вот как это работает:

$ update-alternatives --install /usr/bin/python python /usr/bin/python3.6 1
$ update-alternatives --install /usr/bin/python python /usr/bin/python3.8 2

Мы бежали ОБНОВЛЕНИЕ-Альтертины Дважды: один раз для Python 3.6, и один раз для Python 3.8 (не беспокойтесь о Python 2.7, ваша система знает об этом … поверьте мне). Теперь мы можем использовать ОБНОВЛЕНИЕ-Альтертивы-L-List Чтобы перечислить все альтернативные установки, которые у нас есть из определенных программ:

$ update-alternatives --list python
/usr/bin/python3.6
/usr/local/bin/python3.8

Теперь мы можем переключаться между версиями Python! Запустите следующее:

$ update-alternatives --config python

Вы должны быть поражены подсказкой, подобной этой ниже. Это перечисляет все версии Python, которую распознает ваша система. Выберите версию Python, которую вы хотели бы использовать, предоставив номер «Выбор» для подсказки:

There are 2 choices for the alternative python (providing /usr/bin/python).

  Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/local/bin/python3.8 2 auto mode
  1 /usr/bin/python3.6 1 manual mode
  2 /usr/local/bin/python3.8 2 manual mode

Press  to keep the current choice[*], or type selection number: 

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

Это звучит абсурдно, но преуспеть в изменении версий Python в Ubuntu без разрыва вещей довольно впечатляет. Я бы сказал, что это в основном вина тех, кто преподает Python. Если «те, кто не может сделать, учить», справедливо предположить, что многие курсы Python преподаются теми, кто не запустил значимое программное обеспечение. Это было резко, но не @ @, несмотря ни на что.

Мы сделали «тяжелую» часть, но есть немного домашнего хозяйства, о которой можно позаботиться. Нам все еще нужно установить Pip Для нашего недавно установленного Python, а также обновить PIP до последней версии:

$ apt install python3-pip
$ python3.8 -m pip install --upgrade pip

Это все, что нужно!

Оригинал: “https://dev.to/hackersandslackers/managing-multiple-versions-of-python-on-ubuntu-4aki”