Несколько версий python linux
Python стал довольно популярным языком программирования из-за простоты использования по сравнению с другими языками. Следовательно на этом языке написано множество приложений и инструментов для Linux.
Многие из них не обновлены до новых версий Python. из-за увольнения программиста или по какой-либо другой причине, но приложение все еще работает или для него требуется определенная версия Python.
Это может привести к большой проблемеВот почему мы можем использовать отличный инструмент, который позволит нам устанавливать различные версии этого языка в нашей системе.
На Pyenv
Инструмент, о котором мы поговорим сегодня, - это Pyenv. это простой, мощный, бесплатный кроссплатформенный инструмент с открытым исходным кодом, который сосредоточился на управлении несколькими версиями Python в системах Linux.
Pyenv - это инструмент, основанный на rbenv и ruby-build и что он был изменен, чтобы он мог работать с языком программирования Python, что вкратце заключается в том, что это вилка для Python.
Этот отличный инструмент помогает нам устанавливать, управлять и переключаться между несколькими версиями Python, что обычно делается для тестирования кода в нескольких средах Python.
Этот инструмент может быть очень полезен программистам Вы хотите протестировать свои творения, написанные на Python, в нескольких средах и в разных версиях Python.
С его помощью вы избавитесь от необходимости устанавливать и удалять каждую версию Python в своих системах или переходить с одного компьютера на другой с одной и той же системой, но с другой версией языка программирования.
Между sосновные характеристики этого инструмента мы можем выделить:
- Уметь изменять глобальную версию Python для каждого пользователя.
- Установка локальной версии Python для каждого проекта.
- Управление виртуальными средами, созданными anaconda или virtualenv.
- Позволяет вам переопределить версию Python с помощью переменной среды.
- Ищите команды из нескольких версий Python и не только.
Как установить Pyenv на Ubuntu 18.04 и производные?
Si хочу установить этот отличный инструмент, мы должны открыть терминал с помощью Ctrl + Alt + T и мы собираемся установить некоторые зависимости для приложения:
Сейчас мы можем приступить к установке Pyenv на наши компьютеры Это можно сделать, загрузив инструмент из вашего пространства на github, и мы будем использовать скрипт pyenv-установщик.
Все, что тебе нужно сделать, это выполните следующую команду в своем терминале, чтобы установить pyenv.
Выполняя это, мы должны дождаться его загрузки и установки. В конце установки установщик уведомит вас о необходимости добавления Pyenv в вашу личную папку.
Для чего должен добавить следующие строки в ваш файл
/ .bash_profile, мы должны открыть терминал и выполнить:
И мы добавляем следующие строки в конец файла, здесь мы должны заменить «USER» на ваше системное имя пользователя.
Мы сохраняем изменения с помощью Ctrl + O и выходим из nano с помощью Ctrl + X, теперь мы должны сделать эти изменения действительными, выполнив следующую команду:
Pyenv готов к использованию.
Как использовать pyenv в Ubuntu?
После завершения установки мы можем убедиться, что он запущен, и узнать, какие версии Python доступны для использования в нашей системе.
Для этого мы собираемся открыть терминал, и мы собираемся выполнить:
O они также могут запускать:
Эта команда отобразит все доступные версии.
Сейчас чтобы узнать тот, который мы установили, мы должны выполнить:
к установить любую из доступных версий что Pyenv показал нам шаги назад, мы можем выполнить эту команду:
Где мы заменяем x на версию Python, которую хотим установить в системе.
Наконец, чтобы изменить версию Python, мы делаем это с помощью:
Если вы хотите узнать больше об этом инструменте, вы можете проконсультироваться по следующей ссылке.
Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.
Полный путь к статье: Убунлог » ПО » Pyenv: установите несколько версий Python в вашей системе
Python как язык постоянно развивается. Ветка Py2 уже не поддерживается официально. Однако до сих пор существуют окружения, где приходится использовать Py2 и даже не свежий 2.7.x, а что-то постарее. Да и Python 3.x нынче — это большое семейство версий, кое-где несовместимых между собой, в т.ч. и синтаксически! Поэтому практикующий питонист широкого профиля должен понимать, как на одной машине иметь несколько версий среды исполнения. Даже если "в продакшне" и используется какой-нибудь Docker!
Установка Python из репозиториев пакетов операционной системы
Если вам повезло, то в репозитории пакетов ОС будет нужная версия Python, и вы сможете её установить с помощью команды вроде sudo apt-get install python3.5 . Однако достаточно старые дистрибутивы ОС могут не содержать новых версий Python, а достаточно новые дистрибутивы — старых версий Python. В особых случаях репозиторий вообще может содержать только одну версию среды исполнения.
Сборка из исходного кода
CPython — проект с исходным кодом. Доступ к исходному коду всех версий CPython позволяет собрать нужную версию самостоятельно. Однако это процесс, пусть и достаточно хорошо документирован, но всё же требует понимания того, что вам может потребоваться для компиляции кода под вашу операционную систему.
А ещё сборка из исходного кода — это единственный вариант для тех, кто хочет что-то в этом самом коде изменить или скомпилировать интерпретатор для какой-то экзотической платформы (встраиваемые системы, ретро-железо).
pyenv
Ещё одним из способов получения разных версий среды исполнения на одной машине является pyenv. Это "менеджер версий", выполненный в стиле rbenv для Ruby, nvm для NodeJS и т.п.
Миссия pyenv — управлять установленными версиями Python и делать некую версию "активной". Активная версия вызывается, если мы выполняем команду python (а также pip ), при этом разные проекты могут использовать разные активные версии и даже более чем одну одновременно. Последнее свойство полезно авторам библиотек, рассчитанных на широкий круг пользователей — таковые всегда нужно тестировать на разных версиях Python.
Установить pyenv достаточно просто, ведь инструмент представляет собой набор shell scripts. Именно поэтому получился pyenv максимально кроссплатформенным. Но за эту кроссплатформенность приходится платить тем, что каждую версию среды исполнения нужно компилировать из исходного кода! Для компиляции того же CPython потребуется компилятор Си ( gcc на Linux и clang на MacOS), и заголовочные файлы для библиотек, которые использует интерпретатор. Полный список пререквизитов для сборки приходится гуглить.
Установка системным пакетным менеджером из сторонних источников
Для большинства Unix-like ОС, помимо официальных репозиториев, существуют и неофициальные источники пакетов.
Для Debian-like систем, таких как Ubuntu и её производные, сторонние источники пакетов называются PPA, Personal Package Archives. Подключить любой PPA достаточно просто, но нужно понимать, что вы таким образом соглашаетесь на установку пакетов из стороннего источника, никак не подчиняющегося авторам дистрибутива ОС! Подключайте только хорошо зарекомендовавшие себя PPA, например от самих авторов ПО, которое вы хотите установить!
Для Ubuntu-based систем существует PPA от команды "deadsnakes". Это проверенный источник пакетов с самыми разными версиями Python как для свежих релизов ОС, так и для релизов "второй свежести".
Главное преимущество установки пакетов из проверенных PPA состоит в том, что пакеты обычно содержат оптимизированные под конкретный дистрибутив сборки с должным количеством обновлений и исправлений. Такие сборки более безопасны и производительны, чем те, что собраны вручную из исходников.
К тому же в популярных PPA пакеты обновляются своевременно, чего нельзя сказать про пакеты для устаревших релизов ОС, для которых срок поддержки закончился. Конечно, такие релизы лучше вообще не использовать (небезопасно!), но иногда может не быть выбора, а с PPA вы хотя бы будете иметь свежие версии среды исполнения.
Псевдонимы python , python2 , python3
Исторически сложилось так, что интерпретатор Python запускается командой python . Но в какой-то момент случились Python3, обратная несовместимость, "разброд и шатания". Чтобы внести некоторую определённость, был представлен PEP-394: The "python" Command on Unix-Like Systems. Однако даже этот PEP разрешает разным системам самим выбирать, использовать ли Py2 и Py3 вместе или выбрать что-то одно. Системы должны лишь обеспечить, чтобы
- команда python2 вызывала некую версию Python 2.x, если таковая вообще предоставляется;
- команда python3 вызывала некую версию Python 3.x, если таковая предоставляется;
- команда python соответствовала либо python2 , либо python3 (но не ссылалась на какую-то "третью" версию рантайма).
При этом не гарантируется, что все эти команды будут присутствовать в конкретном случае: где-то будет доступна только команда python3 , где-то — python2 . Псевдоним python вообще обязан присутствовать лишь в виртуальном окружении и всегда соответствовать той версии интерпретатора, которая была выбрана при создании окружения.
И даже если автор использует техники, позволяющие писать портируемый код (six, 3to2), умеющий выполняться и на Py2, и на Py3, всё равно непонятно что же указать в shebang!
Вышеупомянутый PEP советует
- либо фиксировать версию явно (только Py2 или только Py3),
- либо требовать использования виртуальных окружений (в ВО всегда будет доступна команда python )
- либо не писать shebang руками, а вместо этого использовать средства setuptools или другой системы пакетирования, создающие точки входа в зависимости при установке пакета (у точек входа shebang будет правильный).
Установка poetry на системы с разными версиями Python
На момент написания статьи poetry (это такой менеджер виртуальных окружений, сборщик пакетов и проч — "швейцарский нож" разработчика на Python) страдал от проблем с версиями рантайма: при установке рекомендованными способом скрипт-установщик завершался с ошибкой, либо установка проходила успешно, но затем не работала сама программа.
Если использовать pyenv, оный всегда предоставляет команду python и poetry "просто работает". Нет проблем и на старых дистрибутивах, где ещё не отказались окончательно от Py2 . И конечно всё работает в виртуальном окружении. Рассмотрим этот вариант поподробнее.
Установка в выделенное виртуальное окружение
Для начала нам понадобится само окружение. Предположим, что Python3 вы уже так или иначе поставили. Делаем раз
Программа установлена! Теперь создаём символическую ссылку на точку входа в папке, видимой в PATH , например, в $HOME/.local/bin :
Работает! Обновлять программу в будущем можно с помощью того же pip (который в окружении). А можно и вовсе автоматизировать процесс установки такого вот Python-софта с помощью pipx.
Особенности использования poetry, установленного в виртуальное окружение
Poetry построен так, чтобы работать с абстрактной версией python. Поэтому он хорошо сочетается с pyenv: один на себя берёт управление разными пайтонами, а другой — проектами на этих пайтонах.
Но эта привязка к команде python немного мешает, когда poetry установлен в своём собственном виртуальном окружении: в этом окружении Python уже известен и не может быть изменён. Данная особенность упомянута в документации к poetry, так что это "не баг, а фича". И всё же есть способ обойти сие ограничение: можно инициализировать окружение вручную с нужной версией Python и настроить poetry на использование этого готового окружения.
Для начала учим poetry создавать окружения не в своём кэше, а в папке с проектом:
С этих пор для каждого проекта виртуальное окружение будет располагаться в поддиректории .venv .
Уже в конкретном проекте инициализируем окружение командой
(для Py2 команда будет другой, т.к. модуль venv тогда ещё не поставлялся вместе со средой исполнения).
Теперь можно работать с poetry как обычно. Несмотря на то, что Python в проекте, возможно, отличается от рантайма, запускающего poetry!
Оригинал: Pyenv – Install Multiple Python Versions for Specific Project
Автор: Aaron Kili
Дата публикации: 29 июня 2018 года
Перевод: А. Кривошей
Дата перевода: июль 2018 г.
Управление несколькими версиями Python в системе Linux - непростая задача, особенно для начинающих. Иногда даже становится все хуже, Если вы хотите разрабатывать и запускать несколько проектов с разными версиями Python на одном сервере, это может привести к серьезным проблемам. Однако этих проблем можно избежать, если вы используете pyenv.
Что такое Pyenv?
Pyenv - это простой, мощный и кроссплатформенный инструмент для управления несколькими версиями Python в Linux-системах, он используется для:
- переключения глобальной версии Python для каждого пользователя;
- установки локальной версии Python для каждого проекта;
- управления виртуальными средами, созданными anaconda или virtualenv;
- переопределения версии Python с переменной окружения;
- поиска команд из нескольких версий Python и для многого другого.
Как работает pyenv?
Как правило, версия Python по умолчанию используется для запуска всех ваших приложений, если вы явно не укажете версию, которую хотите использовать в приложении. Но pyenv реализует простую концепцию использования прокладок (легкие исполняемые файлы), чтобы передать вашу команду правильной версии Python, которую вы хотите использовать, когда у вас установлено несколько версий.
Эти прокладки вставлены pyenv в каталоги перед вашим PATH. Поэтому, когда вы запускаете команду Python, она перехватывается соответствующей прокладкой и передается в pyenv, который затем задает версию Python, указанную вашим приложением, и передает ваши команды правильной версии Python.
В этой статье мы покажем, как установить последнюю версию pyenv в Linux. Мы также продемонстрируем первые три случая использования, из перечисленных выше.
Установка Pyenv в Linux
1. Сначала установите все необходимые пакеты для установки разных версий Python из исходного кода, используя приведенные ниже команды для вашего дистрибутива Linux.
В Debian/Ubuntu/Linux Mint
2. Затем возьмите последнее дерево исходного кода pyenv из репозитория Github и установите его в $HOME/.pyenv, используя следующую команду.
3. Теперь вам нужно установить переменную среды PYENV_ROOT, чтобы указать путь, по которому вы установили pyenv и экспортировать его. Затем добавьте $PYENV_ROOT/bin в PATH для запуска утилиты командной строки pyenv.
Вам также необходимо включить прокладки, а также автодополнение, добавив pyenv init в свою оболочку. Сделайте все это в своем стартовом файле $HOME /.bashrc bash, как показано ниже.
Скопируйте и вставьте следующие строки в конце этого файла.
4. После того, как вы внесли вышеуказанные изменения, вы можете либо перезагрузить файл $HOME/.bashrc, либо перезапустить оболочку, как показано ниже.
Установка нескольких версий Python в Linux
5. На этом этапе вы должны быть готовы начать использовать pyenv. Перед установкой любой версии Python вы можете просмотреть все доступные версии с помощью этой команды:
6. Теперь вы можете установить несколько версий Python с помощью pyenv.
7. Чтобы вывести список всех версий Python, доступных для pyenv, выполните приведенную ниже команду. Она будет показывать только версии, установленные через pyenv.
8. Вы можете проверить глобальную версию Python с помощью приведенной ниже команды, к этому моменту версия по умолчанию должна быть единственной, что установлена системой, а не pyenv.
Вы можете установить глобальную версию python с помощью команды pyenv:
9. Теперь вы можете установить локальную версию Python для каждого проекта, например, если у вас есть проект, расположенный в $HOME/python_projects/test, вы можете установить для него версию Python с помощью следующей команды:
10. Pyenv управляет виртуальными средами через плагин pyenv-virtualenv, который автоматизирует управление виртуальными и консольными средами для Python в Linux и других UNIX-подобных системах.
Вы можете начать с установки этого плагина с попомщью следующих команд:
11. Теперь мы создадим тестовую виртуальную среду, называемую venv_project1, в проекте под названием project1:
12. Теперь, когда вы выводите все версии Python, также должны быть указаны ваши виртуальные среды, а также их локальные версии python, как показано на скриншоте.
13. Чтобы активировать virtualenv, например для venv_project1, введите следующую команду:
в ваш файл $HOME/.bashrc и перезагрузите его.
14. Чтобы отключить активированный virtualenv, запустите следующую команду:
Для получения дополнительной информации вы можете вывести все команды pyenv:
Подробнее о использовании языка Python и программировании на нем вы можете узнать из следующих статей на нашем сайте:
Установка pyenv в Unix/Linux
Установка pyenv в CentOS/Fedora/RedHat
Подключаем EPEL репозиторий:
Далее, стоит установить следующие пакеты:
Имеется простой скрипт для установки данного ПО, можно использовать:
После установки, стоит настроить и потом, можно будет юзать данную тулу.
Установка pyenv в Debian/Ubuntu
Стоит установить следующие пакеты:
Имеется простой скрипт для установки данного ПО, можно использовать:
После установки, стоит настроить и потом, можно будет юзать данную тулу.
Установка pyenv в MacOS
Ставим homebrew, статью можно взять тут:
Выполним поиск пакета:
Чтобы поставить данное ПО, выполняем:
Перейдем к настройке.
Настройка pyenv в Unix/Linux
Просто добавьте этот код в конец вашего
/ .bashrc и затем загрузите ваш профиль, чтобы загрузить эти дополнения:
Можно уже юзать!
Использование pyenv в Unix/Linux
Для того, чтобы посмотреть какие версии python используется на данный момент, имеется команда:
Для установки какой-либо версии, используем:
Смотрим что имеется в системе:
Чтобы переключится на нужную версию, используем:
Так же, можно будет использовать:
Я пока что буду использовать:
Для глобального использования, можно выставить тоже нужную(ые) версию(и):
Можно выставить конкретную версию питона для shell оболочки, например:
Как это выглядит на картинке:
Сейчас, я выставлю нужные мне версии:
Смотрим версию питона:
Смотрим где находится питон:
Для получения списка команд, множно использовать:
Получить помощь можно так:
Или, для какой-то конкретной команды:
Т.е для активации созданной среды, используем:
Для диактивации, следующая команда:
Для удаления версии питона с ОС, используем:
Для обновления pyenv, имеется конманда:
Для удаления, используйте:
Так же, стоит удалить следующие строки с
One thought on “ Установка pyenv в Unix/Linux ”
Устанавливаешь такой это все, потом пишешь pipenv shell и наблюдаешь как он создает окружение из версии пайтон в /usr/bin/python3 и пофигу ему что ты поставил самую последнею версию, и ты печальный идешь и компилишь ее по нормальному
Добавить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.
Читайте также: