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

Pyenv — установка нескольких версий Python для конкретного проекта


Управление несколькими версиями Python в системе Linux — непростая задача, особенно для новичков. Иногда ситуация даже ухудшается, когда вы хотите разработать и запустить несколько проектов с разными версиями Python на одном сервере. Однако этого не должно быть, если вы используете pyenv.

Читайте также: как установить последнюю версию Python 3.6 в Linux

Что такое Пьенв?

Pyenv — это простой, мощный и кроссплатформенный инструмент для управления несколькими версиями Python в системах Linux, который используется для .

  • Переключение глобальной версии Python для каждого пользователя.
  • установка локальной версии Python для каждого проекта.
  • Управление виртуальными средами, созданными anaconda или virtualenv.
  • Переопределение версии Python с помощью переменной среды.
  • Поиск команд из нескольких версий Python и многое другое.

Как работает pyenv?

Обычно для запуска всех ваших приложений используется одна версия Python по умолчанию, если только вы явно не укажете версию, которую хотите использовать в приложении. Но pyenv реализует простую концепцию использования прокладок (облегченных исполняемых файлов) для передачи вашей команды правильной версии Python, которую вы хотите использовать, если у вас установлено несколько версий.

Эти прокладки вставляются с помощью pyenv в каталоги перед вашим PATH. Поэтому, когда вы запускаете команду Python, она перехватывается соответствующей shim и передается в 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 в вашу оболочку. Выполните все эти действия в файле запуска bash $HOME/.bashrc, как показано.

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. Чтобы просмотреть все версии Python, доступные для pyenv, выполните следующую команду. Здесь будут показаны только версии, установленные через 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 плагина, который автоматизирует управление средами virtualenvs и 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. Чтобы активировать virtualenv, например venv_project1, введите следующую команду.

pyenv activate venv_project1

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