python

Статус сборки Роль Ansible

TOOCS / Роль Ansible: TOOCS.python

/!\ Эта роль была переименована - Старое название: FlorianKempenich.python-virtualenv /!\

  • Устанавливает несколько версий Python с помощью asdf (или pyenv)
  • Устанавливает pipenv для всех версий
  • Необязательно: устанавливает глобальные пакеты pip для версии Python по умолчанию

TOOCS?

TOOCS - это набор инструментов/ролей ansible, предназначенных для настройки системы в один клик. Они представляют собой простой и надежный способ настройки определенного инструмента. Вы можете использовать их так, как есть, или, изучив их код, как учебное пособие для пошагового следования.

Они, как следует из их названия, являются предметными: хотя они гарантируют настройку данного инструмента в один клик, они не гарантируют последовательность в том, как это достигается, новые выпуски могут ввести разрушающие изменения.
Ознакомьтесь с кодом и убедитесь, что вы понимаете, что происходит!

Требования

Эта роль работает только на MacOSX и Ubuntu/Debian.

Переменные роли

  • python_versions

  • global_pip_packages

    • Список пакетов pip для установки
    • Пакеты будут установлены только для версии Python по умолчанию (первой в списке)
    • По умолчанию: []
  • installation_method

  • 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
Лицензия
mit
Загрузки
108
Владелец
The Opinionated One-Click Setups - TOOCS - Logo made with DesignEvo (www.designevo.com)