pyenv - установка нескольких версий Python для конкретного проекта
Управление несколькими версиями Python в системе Linux — непростая задача, особенно для новичков. Иногда ситуация становится еще хуже, когда вы хотите разрабатывать и запускать несколько проектов с разными версиями Python на одном сервере. Однако это не должно быть так, если вы используете pyenv.
Читайте также: Как установить последнюю версию Python 3.6 в Linux
Что такое Pyenv?
Pyenv - это простой, мощный и кроссплатформенный инструмент для управления несколькими версиями Python на системах Linux, которые используются для.
- Переключение глобальной версии Python для каждого пользователя.
- настройка локальной версии Python для каждого проекта.
- Управление виртуальными средами, созданными anaconda или virtualenv.
- Переопределение версии Python переменной окружения.
- Поиск команд из нескольких версий Python и многого другого.
Как работает pyenv?
Как правило, для запуска всех приложений используется одна версия Python по умолчанию, если вы явно не указываете версию, которую хотите использовать в приложении. Но pyenv реализует простую концепцию использования оболочек (облегченных исполняемых файлов) для передачи вашей команды правильной версии Python, которую вы хотите использовать, когда у вас установлено несколько версий.
Эти прокладки вставляются pyenv в директорию перед вашим PATH. Таким образом, когда вы запускаете команду Python, она перехватывается соответствующей оболочкой и передается в pyenv, который затем устанавливает версию Python, указанную вашим приложением, и передает ваши команды правильной установке Python. Это обзор того, как работает pyenv.
В этой статье мы покажем, как установить последнюю версию pyenv в Linux. Мы также продемонстрируем первые три варианта использования, перечисленные выше.
Как установить Pyenv в Linux
1. Сначала установите все необходимые пакеты для установки различных версий Python из исходников, используя следующую команду в вашем соответствующем дистрибутиве Linux.
------------ On Debian/Ubuntu/Linux Mint ------------
sudo apt install curl git-core gcc make zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libssl-dev
------------ On CentOS/RHEL ------------
yum -y install epel-release
yum install git gcc zlib-devel bzip2-devel readline-devel sqlite-devel openssl-devel
------------ On Fedora 22+ ------------
yum install git gcc zlib-devel bzip2-devel readline-devel sqlite-devel openssl-devel
2. Затем скачайте последнее дерево исходного кода pyenv из репозитория Github и установите его по пути $HOME/.pyenv
с помощью следующей команды.
$ git clone https://github.com/pyenv/pyenv.git $HOME/.pyenv
3. Теперь вам нужно установить переменную окружения PYENV_ROOT, указывающую на путь, куда вы установили pyenv, и экспортировать его. Затем добавьте $PYENV_ROOT/bin в свой PATH, чтобы запустить утилиту командной строки pyenv, как и любые другие системные команды.
Вам также необходимо включить оболочки совместимости и автозаполнение, добавив pyenv init в оболочку. Выполните все эти действия в файле запуска $HOME/.bashrc bash, как показано на рисунке.
$ vim $HOME/.bashrc
Скопируйте и вставьте следующие строки в конец этого файла.
## pyenv configs
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
if command -v pyenv 1>/dev/null 2>&1; then
eval "$(pyenv init -)"
fi
4. После того, как вы внесли вышеуказанные изменения, вы можете либо получить исходный файл $HOME/.bashrc, либо перезапустить оболочку, как показано на рисунке.
$ source $HOME/.bashrc
OR
exec "$SHELL"
Как установить несколько версий Python в Linux
5. На этом этапе вы должны быть готовы начать использовать pyenv. Перед установкой любой версии Python вы можете просмотреть все доступные версии с помощью этой команды.
pyenv install -l
6. Теперь вы можете установить несколько версий Python через pyenv, например.
$ pyenv install 3.6.4
pyenv install 3.6.5
7. Чтобы получить список всех доступных для pyenv версий Python, выполните следующую команду. При этом будут показаны только версии, установленные через сам pyenv.
$ pyenv versions
8. Вы можете проверить глобальную версию Python с помощью следующей команды, к этому времени версией по умолчанию должна быть та, которую установила система, а не pyenv.
$ pyenv global
Вы можете установить глобальную версию python с помощью команды pyenv.
$ pyenv global 3.6.5
pyenv global
9. Теперь вы можете установить локальную версию Python для каждого проекта, например, если у вас есть проект, расположенный в $HOME/python_projects/test, вы можете установить его версию Python с помощью следующей команды.
$ cd python_projects/test
pyenv local 3.6.5
pyenv version #view local python version for a specific project
OR
pyenv versions
10. Pyenv управляет виртуальными средами с помощью плагина pyenv-virtualenv, который автоматизирует управление виртуальными средами и средами conda для Python на Linux и других UNIX-подобных системах.
Вы можете начать с установки этого плагина с помощью следующих команд.
$ git clone https://github.com/yyuu/pyenv-virtualenv.git $HOME/.pyenv/plugins/pyenv-virtualenv
source $HOME/.bashrc
11. Теперь создадим тестовую виртуальную среду с именем venv_project1 в рамках проекта project1 следующим образом.
$ cd python_projects
mkdir project1
cd project1
pyenv virtualenv 3.6.5 venv_project1
12. Теперь, когда вы перечисляете все версии Python, ваши виртуальные среды, а также их локальные версии Python также должны быть перечислены, как показано на скриншоте.
$ pyenv versions
13. Чтобы активировать виртуальное окружение, например venv_project1, введите следующую команду.
$ pyenv activate venv_project1
style="color: red;">Примечание: Вы можете получить сообщение ниже, используя последнюю версию плагина pyenv-virtualenv впервые.
pyenv-virtualenv: prompt changing will be removed from future release. configure `export PYENV_VIRTUALENV_DISABLE_PROMPT=1' to simulate the behavior.
Добавьте строку export PYENV_VIRTUALENV_DISABLE_PROMPT=1 в файл $HOME/.bashrc, куда вы добавили другие конфигурации pyenv, и исходный файл для имитации поведения, на которое делается акцент.
14. Чтобы деактивировать активированное виртуальное окружение, выполните эту команду.
$ pyenv deactivate
Для получения дополнительной информации вы можете перечислить все команды pyenv с помощью следующей команды.
$ pyenv commands
Для получения дополнительной информации перейдите в репозиторий pyenv Github: https://github.com/pyenv/pyenv
Читайте также: Как установить несколько версий PHP для нескольких сайтов
Использовать pyenv действительно так просто. В этом руководстве мы показали, как его установить, а также продемонстрировали некоторые из его вариантов использования для управления несколькими версиями Python в системе Linux. Используйте форму обратной связи ниже, чтобы задать любые вопросы или поделиться своими мыслями об этом инструменте.