Поиск по сайту:

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. Используйте форму обратной связи ниже, чтобы задать любые вопросы или поделиться своими мыслями об этом инструменте.

Статьи по данной тематике: