- Pyenv — установка нескольких версий Python для разных проектов
- Что такое Pyenv?
- Как работает pyenv?
- Установка Pyenv в Linux
- Установка нескольких версий Python в Linux
- Изменить версию Python3 по умолчанию в Ubuntu
- Как обновить Python в Linux?
- Введение
- Обновление Python
- Обновление Python в Debian Linux (Ubuntu, Raspbian, Mint и другие)
- Обновление Python в Red Hat Linux (CentOS и Fedora Linux)
- Заключение
- Менеджер версий python
- Ручной способ
- PyEnv
- Виртуальное окружение
Pyenv — установка нескольких версий Python для разных проектов
Оригинал: 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, введите следующую команду:
Примечание. При использовании последней версии плагина pyenv-virtualenv в первый раз, вы можете получить приведенное ниже сообщение:
в ваш файл $HOME/.bashrc и перезагрузите его.
14. Чтобы отключить активированный virtualenv, запустите следующую команду:
Для получения дополнительной информации вы можете вывести все команды pyenv:
Подробнее о использовании языка Python и программировании на нем вы можете узнать из следующих статей на нашем сайте:
Источник
Изменить версию Python3 по умолчанию в Ubuntu
Я использую Ubuntu 16.04 LTS. Я python3 установил. Установлены две версии, python 3.4.3 и python 3.6 . Всякий раз, когда я использую python3 команду, она принимает python 3.4.3 по умолчанию. Я хочу использовать python 3.6 с python3 .
python3 —version шоу version 3.4.3
Я устанавливаю, ansible который поддерживает version > 3.5 . Поэтому, когда я набираю ansible в терминале, он выдает ошибку из-за python 3.4
Покажет вам ошибку:
Вам нужно обновить свою версию update-alternatives , тогда вы сможете установить версию Python по умолчанию.
Установите python3.6 по умолчанию.
Или используйте следующую команду, чтобы установить python3.6 по умолчанию:
Вы можете добиться этого, применяя следующие простые шаги —
- Проверьте версию Python на терминале — python —version
- Получите права пользователя root. По типу терминала — sudo su
- Запишите пароль пользователя root
- Выполните эту команду, чтобы перейти на Python 3.6 —
update-alternatives —install /usr/bin/python python /usr/bin/python3 1 - Проверьте версию Python — python —version
- Готово.
Создайте символическую ссылку для / usr / bin / python3. В моем LinuxMint:
Использование этих команд может помочь вам:
- проверьте версию python: ls /usr/bin/python*
- псевдоним: alias python=’/usr/bin/pythonxx’
- повторного входа в систему: .
/.bashrc
Простой ответ — добавить псевдоним для python3.6.
Просто добавьте эту строку в файл
/ .bashrc:, alias python3=»python3.6″ затем закройте свой терминал и откройте новый. Теперь, когда вы печатаете, python3 xxx он переводится в python3.6 xxx .
Это решение решает вашу проблему без необходимости слишком сильно настраивать вашу систему.
РЕДАКТИРОВАТЬ :
Как отметил Микаэль Кьер , это неверная конфигурация ANSIBLE в вашей системе.
Установите параметр ansible_python_interpreter конфигурации в / usr / bin / python3. Параметр конфигурации ansible_python_interpreter обычно устанавливается для каждого хоста в качестве переменной инвентаризации, связанной с хостом или группой хостов:
Как видно здесь о файле конфигурации:
Изменения могут быть внесены и использованы в файле конфигурации, который будет обрабатываться в следующем порядке:
Источник
Как обновить Python в Linux?
Руководство по обновлению Python в операционных системах семейства Linux.
Введение
Представь себе ситуацию, ты придумал какой-нибудь проект, решил реализовать его на Python, открываешь терминал и обнаруживаешь старую версию, например Python 3.4.
Правильно, обновить Python через пакетный менеджер.
Далее я расскажу как это сделать.
Все команды необходимо выполнять под пользователем root или же через sudo.
Обновление Python
Рассмотрим несколько примеров обновления Python в самых популярных дистрибутивах
Обновление Python в Debian Linux (Ubuntu, Raspbian, Mint и другие)
В моем случае я буду использовать raspberrypi 4 с дистрибутивом raspbian (основан на Debian buster). Открываем терминал (или подключаемся по ssh) и вводим команду apt update
Видим примерно такую же ситуацию, локальный репозиторий обновил информацию о доступным пакетах из сетевого репозитория и стали доступны обновления других пакетов. Но мы сейчас не об этом. Нас интересует только python.
Далее вводим команду
В моем дистрибутиве используется последняя доступная версия 3.7.3-1
Обновление Python в Red Hat Linux (CentOS и Fedora Linux)
В принципе обновление пакетов в linux имеет схожий алгоритм. Сперва вы получаете список доступных пакетов из удаленного репозитория и сравнивание с тем, что установлено у вас локально. После обновление локального репозитория нужно инициализировать установку python. Разнообразных дистрибутивов linux у меня под рукой нет, да и используя я в серверных вариантах только debian-based. Но информация о работе с другими пакетными менеджерами доступна онлайн:)
Обновление python выполняется одной командой
Заключение
В этом руководстве мы узнали как обновить Python в Linux.
Источник
Менеджер версий python
Иногда полезно держать несколько версий python на одной машине. Допустим для разработки двух проектов нам необходима вторая и третья ветка python. Или вы поддерживаете проект который использует старую версию python.
Обычно для этого мы используем виртуальное окружение virtualenv или же обертку для него virtualenvwrapper. Об этом я рассказывать не буду, так как есть уже много подобных статей, да и в документациях к самим утилитам все очень хорошо объяснено. Достаточно только забить virtualenv или virtualenvwrapper в поисковик.
Но в дополнение к ним я хочу рассказать в этой статье про менеджер версий python. Кому любопытно прошу под кат.
Чтобы использовать несколько версий python, можно установить их вручную или воспользоваться менеджер версий. Таких есть два: pythonbrew(который более не развивается) и pyenv. Оба менеджера не поддерживают windows(pythonbrew, pyenv) так что питонистам пишущим на этой платформе, придется пока разруливать все руками, либо сделать свою утилиту для смены путей до нужных версий. Кто как справляется с данной ситуацией можете оставлять в комментариях.
Так как pythonbrew более не поддерживается в этой статье он рассмотрен не будет.
P.S. В статье приведены примеры проверенные для OS Ubuntu 12.04. При попытке повторить их, делайте поправки относительно своего дистрибутива.
Ручной способ
Для того чтобы работать с несколькими версиями питона, можно установить необходимые версии в указанный префикс. Например чтобы не мудрить с правами, установим дополнительно 2 версии python(2.7.6 и 3.3.2) в директорию пользователю:
2.7.6
для 3.3.2 делаем аналогичные операции:
Теперь можно создать виртуальное окружение чтобы использовать эти версии:
или через virtualenvwrapper:
Собственно на основании такого способа описана статья по созданию мультихостинга.
Далее если вам необходимо использовать какую-то из этих версий как python по умолчанию, то вам необходимо добавить в переменную окружения путь до интерпретатора python.
Соответственно вместо bashrc вы ставите bash_profile, zshrc, kshrc, profile в зависимости от вашей командной оболочки.
И по необходимости можно установить pip, предварительно установив setuptools.
Фух, ну вроде бы все. А теперь о том как можно сделать это проще использую менеджер версий python.
PyEnv
В общем если вы достаточно ленивы, то можно не делать всего того что описано выше а воспользоваться утилитой pyenv, которая упростит вам данное взаимодействие с окружением и путями.
Так в чем же заключается особенность этой утилиты? Вот что она может со слов автора проекта:
- Let you change the global Python version on a per-user basis.
- Provide support for per-project Python versions.
- Allow you to override the Python version with an environment variable.
- Search commands from multiple versions of Python at a time. This may be helpful to test across Python versions with tox.
По умолчанию все версии Python будут доступны в
/.pyenv/versions/ . Изменять версии Python можно как в глобальном контексте так и в локальном(например под конкретный проект).
Как ставить pyenv хорошо описывается в инструкции. Так же у автора есть скрипт который по мимо самой pyenv ставит еще и дополнительные плагины, в том числе и для virtualenv. Есть возможность установить плагин и для virtualenvwrapper.
Прежде чем начать установку, убедитесь, что у вас установлен git:
Далее устанавливаем по инструкции:
Во втором случае установка произойдет с дополнительными плагинами.
Далее, для того чтобы все заработало, дополним наш bashrc и перезагрузим оболочку:
Для обновления утилиты или смены ее версии используем git.
Для управления версиями pyenv необходимо перейти в директорию с утилитой:
Для просмотра доступных версий:
для смены версии
Пример использования
В добавок ко всему все довольно подробно и детально расписано у автора проекта в его репозиториях на github.
Виртуальное окружение
Все, а дальше как хотите. Если вы используете 3 ветку python то для создания виртуального окружения можно воспользоваться утилитой venv которая работает из коробки. Про это есть статья на хабре. Если вы больше привыкли к virtualenv или ее обертке virtualenvwrapper то тут есть два варианта: либо поставить плагин к pyenv, или использовать их к той версии python c которой вы работаете. Соответственно если выбрать первый вариант, то созданные вами окружения будут добавлены к вашим версиям python и доступны через команду:
Добавить плагин легко, просто клонируем его из репозитория pyenv-virtualenv или pyenv-virtualenvwrapper:
Пример использования можно посмотреть в документации для pyenv-virtualenv и pyenv-virtualenvwrapper.
Все, а дальше пользуйтесь, как вам привычнее.
Пример использования
Теперь находясь в директории проекта можно запускать скрипт от нужной версии python не прилагая никаких действий. pyenv создает в директории файл .python-version который содержит в себе информацию о том какую версию python с каким окружение использовать для данного проекта.
Источник