python
TOOCS / Роль Ansible: TOOCS.python
/!\ Эта роль была переименована - Старое название:
FlorianKempenich.python-virtualenv
/!\
- Устанавливает несколько версий Python с помощью
asdf
(илиpyenv
) - Устанавливает
pipenv
для всех версий - Необязательно: устанавливает глобальные пакеты pip для версии Python по умолчанию
TOOCS?
TOOCS - это набор инструментов/ролей ansible, предназначенных для настройки системы в один клик. Они представляют собой простой и надежный способ настройки определенного инструмента. Вы можете использовать их так, как есть, или, изучив их код, как учебное пособие для пошагового следования.
Они, как следует из их названия, являются предметными: хотя они гарантируют настройку данного инструмента в один клик, они не гарантируют последовательность в том, как это достигается, новые выпуски могут ввести разрушающие изменения.
Ознакомьтесь с кодом и убедитесь, что вы понимаете, что происходит!
Требования
Эта роль работает только на MacOSX и Ubuntu/Debian.
Переменные роли
python_versions
- Список версий Python для установки
- Порядок, в котором они перечислены, будет определять приоритет установки
Узнайте больше: Список версий для установки упорядочен - Обязательно
global_pip_packages
- Список пакетов pip для установки
- Пакеты будут установлены только для версии Python по умолчанию (первой в списке)
- По умолчанию:
[]
installation_method
- Допустимые значения:
asdf
,pyenv
- См. Методы установки
- По умолчанию:
asdf
- Допустимые значения:
asdf_skip_shell_setup
- Пропустить настройку оболочки при установке
asdf
- См. Методы установки
- По умолчанию:
False
- Пропустить настройку оболочки при установке
Методы установки
asdf
Предпочтительный и стандартный метод установки с использованием менеджера версий asdf
Установка и настройка asdf
, а также установка Python делегируется другой роли TOOCS: TOOCS.asdf.
Эта роль TOOCS отвечает только за установку необязательных глобальных pip-модулей.
После установки - с asdf
: Настройка оболочки
Если вы используете
zsh
, вам повезло! Ваша оболочка была автоматически настроена во время установкиasdf
.Если вы не используете
zsh
, потребуется ручная настройка, см.: TOOCS/asdf - Пользователи, не использующиеzsh
Кроме того, если
asdf
уже настроен на вашем компьютере, вы можете пропустить автоматическую настройку оболочкиasdf
=> Установите переменнуюasdf_skip_shell_setup
вTrue
pyenv
Альтернативный вариант с использованием менеджера версий pyenv
После установки - с pyenv
: Настройка оболочки
Поскольку pyenv
используется для управления различными версиями python
, его необходимо активировать в вашей оболочке.
Просто добавьте эти строки в соответствующие файлы:
~/.zshrc
/~/.bashrc
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
~/.zlogin
/~/.bash_profile
if command -v pyenv 1>/dev/null 2>&1; then
eval "$(pyenv init -)"
fi
Причина разделения инициализации между этими двумя файлами - обеспечить плавную работу с pyenv
и pipenv
. Таким образом, активация pyenv
происходит только один раз за сессию логина и не мешает подпроцессу, запущенному с pipenv shell
.
Узнайте больше: Pyenv Issue #184 - Неправильный Python внутри 'pipenv shell'
Пример плейбука
- hosts: localhost
tasks:
- include_role:
name: TOOCS.python
vars:
python_versions:
- 3.7.0
- 2.7.15
global_pip_packages:
- cheat
- howdoi
- ansible-droplet
# ИЛИ
- hosts: localhost
tasks:
- include_role:
name: TOOCS.python
vars:
python_versions:
- 3.7.0
installation_method: asdf
asdf_skip_shell_setup: True
# ИЛИ
- hosts: localhost
tasks:
- include_role:
name: TOOCS.python
vars:
python_versions:
- 3.7.0
installation_method: pyenv
Лицензия
MIT
Информация об авторе
Следите за мной в Twitter: @ThisIsFlorianK
Узнайте больше о моей работе: Флориан Кемпених - Личный сайт
Install multiple versions of Python with some optional global packages
ansible-galaxy install TOOCS/python