Установка pyenv в Unix/Linux

pyenv — утилита, которая позволяет легко переключаться между несколькими версиями Python которые установлены на хосте. Это очень полезно при разработке ПО, когда имеется несколько разных верий и их нужно поддерживать.

Установка pyenv в Unix/Linux

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

Рекомендуемое чтиво:

Установка virtualenv + virtualenvwrapper в Unix/Linux

И так, начнем установку…

Установка pyenv в CentOS/Fedora/RedHat

Подключаем EPEL репозиторий:

Установка EPEL

Далее, стоит установить следующие пакеты:

# yum install zlib-devel bzip2 bzip2-devel readline-devel sqlite \
sqlite-devel openssl-devel xz xz-devel libffi-devel

Имеется простой скрипт для установки данного ПО, можно использовать:

$ cd /usr/local/src && curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash

После установки, стоит настроить и потом, можно будет юзать данную тулу.

Установка pyenv в Debian/Ubuntu

Стоит установить следующие пакеты:

# apt-get install -y make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev \
libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl

Имеется простой скрипт для установки данного ПО, можно использовать:

$ cd /usr/local/src && curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash

После установки, стоит настроить и потом, можно будет юзать данную тулу.

Установка pyenv в MacOS

Ставим homebrew, статью можно взять тут:

Установка homebrew на Mac OS X

Выполним поиск пакета:

$ brew search pyenv

Чтобы поставить данное ПО, выполняем:

$ brew install pyenv

Перейдем к настройке.

Настройка pyenv в Unix/Linux

Открываем файл:

$ vim  ~/.bashrc

Прописываем:

export PYENV_ROOT="${HOME}/.pyenv"

if [ -d "${PYENV_ROOT}" ]; then
    export PATH="${PYENV_ROOT}/bin:${PATH}"
    eval "$(pyenv init -)"
    eval "$(pyenv virtualenv-init -)"
fi

Просто добавьте этот код в конец вашего ~/ .bashrc и затем загрузите ваш профиль, чтобы загрузить эти дополнения:

Для RPM’s ОС:

$ source ~/.bash_profile

Или:

$ . ~/.bash_profile

Для DEB’s ОС:

$ source ~/.profile

Для MacOS:

$ source ~/.bash_profile

Можно уже юзать!

Использование pyenv в Unix/Linux

Для того, чтобы посмотреть какие версии python используется на данный момент, имеется команда:

$ pyenv install -l

Для установки какой-либо версии, используем:

$ pyenv install 2.7.16 && \
  pyenv install 3.5.7

Смотрим что имеется в системе:

$ pyenv versions
* system
  2.7.16
  3.5.7

Чтобы переключится на нужную версию, используем:

$ pyenv local 2.7.16

Так же, можно будет использовать:

$ pyenv local some_project

Я пока что буду использовать:

$ pyenv local 2.7.16 3.5.7

Для глобального использования, можно выставить тоже нужную(ые) версию(и):

$ pyenv global 3.5.7 2.7.16

Можно выставить конкретную версию питона для shell оболочки, например:

$ pyenv shell 3.5.7

Как это выглядит на картинке:

Создадим песочницу:

$ pyenv virtualenv -p python2.7 2.7.16 my_project-with-2.7.16

Или:

$ pyenv virtualenv 2.7.16 my_project-with-2.7.16

Смотрим песочницы:

$ pyenv virtualenvs

Сейчас, я выставлю нужные мне версии:

$ pyenv local my_project-with-2.7.16 3.5.7

Смотрим версию питона:

$ python -V
Python 2.7.16

Смотрим где находится питон:

$ which python
/Users/captain/.pyenv/shims/python

И:

$ pyenv which python
/Users/captain/.pyenv/versions/my_project-with-2.7.16/bin/python

Для получения списка команд, множно использовать:

$ pyenv commands
--version
activate
commands
completions
deactivate
exec
global
help
hooks
init
install
local
prefix
realpath.dylib
rehash
root
shell
shims
uninstall
version
version-file
version-file-read
version-file-write
version-name
version-origin
versions
virtualenv
virtualenv-delete
virtualenv-init
virtualenv-prefix
virtualenvs
virtualenvwrapper
virtualenvwrapper_lazy
whence
which

Получить помощь можно так:

$ pyenv --help
Usage: pyenv <command> [<args>]

Some useful pyenv commands are:
   commands    List all available pyenv commands
   local       Set or show the local application-specific Python version
   global      Set or show the global Python version
   shell       Set or show the shell-specific Python version
   install     Install a Python version using python-build
   uninstall   Uninstall a specific Python version
   rehash      Rehash pyenv shims (run this after installing executables)
   version     Show the current Python version and its origin
   versions    List all Python versions available to pyenv
   which       Display the full path to an executable
   whence      List all Python versions that contain the given executable

See `pyenv help <command>' for information on a specific command.
For full documentation, see: https://github.com/pyenv/pyenv#readme

Или, для какой-то конкретной команды:

$ pyenv activate --help
Usage: pyenv activate <virtualenv>
       pyenv activate --unset

Activate a Python virtualenv environment in current shell.
This acts almost as same as `pyenv shell`, but this invokes the `activate`
script in your shell.

<virtualenv> should be a string matching a Python version known to pyenv.

Т.е для активации созданной среды, используем:

$ pyenv activate my_project-with-2.7.16

Для диактивации, следующая команда:

$ pyenv deactivate

Для удаления версии питона с ОС, используем:

$ pyenv uninstall 2.7.16

Для обновления pyenv, имеется конманда:

$ pyenv update

Для удаления, используйте:

$ rm -rf $PYENV_ROOT

ЗАМЕЧАНИЕ: По умолчанию, $PYENV_ROOT — ~/.pyenv.

Так же, стоит удалить следующие строки с ~/.bashrc:

export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

Вот и все, статья «Установка pyenv в Unix/Linux» завершена.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.