TOOCS.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