TOOCS.python
TOOCS / Rola Ansible: TOOCS.python
/!\ Ta rola została zmieniona - Stara nazwa:
FlorianKempenich.python-virtualenv/!\
- Instalacja wielu wersji Pythona pythonprzy użyciuasdf(lubpyenv)
- Instalacja pipenvdla wszystkich wersji
- Opcjonalnie: Instalacja globalnych pakietów pip dla domyślnej wersji Pythona
TOOCS?
TOOCS - Jedno kliknięcie, które ustawia to, co potrzebne, to zestaw narzędzi / ról ansible zaprojektowanych do skonfigurowania systemu za pomocą jednego kliknięcia. Są prostym, niezawodnym sposobem na skonfigurowanie danego narzędzia. Możesz je używać w takiej formie, w jakiej są, lub przeglądając ich kod, jako tutorial do śledzenia krok po kroku.
Jak sama nazwa wskazuje, są to zestawy wytycznych: chociaż gwarantują konfigurację danego narzędzia za pomocą jednego kliknięcia, nie gwarantują spójności w tym, jak to osiągają, nowe wydania mogą wprowadzać zmiany, które łamią zgodność.
Przeczytaj kod i upewnij się, że rozumiesz, co się dzieje!
Wymagania
Ta rola działa tylko na MacOSX i Ubuntu/Debian.
Zmienne roli
- python_versions- Lista wersji Pythona do zainstalowania
- Kolejność, w jakiej są wymienione, będzie kolejnością, w jakiej będą priorytetowane
 Dowiedz się więcej o tym: Lista wersji do zainstalowania jest uporządkowana
- Wymagane
 
- global_pip_packages- Lista pakietów pip do zainstalowania
- Pakiety będą instalowane tylko dla domyślnej wersji Pythona (pierwszej na liście)
- Domyślna: []
 
- installation_method- Możliwe wartości: asdf,pyenv
- Zobacz Metody instalacji
- Domyślna: asdf
 
- Możliwe wartości: 
- asdf_skip_shell_setup- Pomiń konfigurację powłoki podczas instalacji asdf
- Zobacz Metody instalacji
- Domyślna: False
 
- Pomiń konfigurację powłoki podczas instalacji 
Metody instalacji
asdf
Preferowana i domyślna metoda instalacji przy użyciu menedżera wersji asdf
Instalacja i konfiguracja asdf, a także instalacja Pythona są przekazywane do innego TOOCS: TOOCS.asdf.
Ten TOOCS zajmuje się tylko instalacją opcjonalnych globalnych modułów pip.
Po instalacji - z asdf: Konfiguracja powłoki
- Jeśli używasz - zsh, jesteś gotowy! Twoja powłoka została automatycznie skonfigurowana podczas instalacji- asdf.
- Jeśli NIE używasz - zsh, wymagana jest konfiguracja ręczna, zobacz: TOOCS/asdf - Użytkownicy nie- zsh
- Alternatywnie, jeśli - asdfjest już skonfigurowany na Twoim komputerze, możesz pominąć automatyczną konfigurację powłoki- asdf=> Ustaw zmienną- asdf_skip_shell_setupna- True.
pyenv
Alternatywna wersja korzystająca z menedżera wersji pyenv
Po instalacji - z pyenv: Konfiguracja powłoki
Ponieważ pyenv jest używany do zarządzania różnymi wersjami python, musi być aktywowany w Twojej powłoce.
Po prostu dodaj te linie do odpowiednich plików:
- ~/.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
Powód, dla którego dzielimy inicjalizację między te dwa pliki, to zapewnienie płynnego działania z zarówno pyenv, jak i pipenv. W ten sposób aktywacja pyenv odbywa się tylko raz na powłoce logowania i nie koliduje z podpowłoką uruchomioną z pipenv shell.
Dowiedz się więcej o tym: Pyenv Issue #184 - Zły Python wewnątrz 'pipenv shell'
Przykładowy plik playbook
- hosts: localhost
  tasks:
    - include_role:
        name: TOOCS.python
      vars:
        python_versions:
          - 3.7.0
          - 2.7.15
        global_pip_packages:
          - cheat
          - howdoi
          - ansible-droplet
# LUB
- hosts: localhost
  tasks:
    - include_role:
        name: TOOCS.python
      vars:
        python_versions:
          - 3.7.0
        installation_method: asdf
        asdf_skip_shell_setup: True
# LUB
- hosts: localhost
  tasks:
    - include_role:
        name: TOOCS.python
      vars:
        python_versions:
          - 3.7.0
        installation_method: pyenv
Licencja
MIT
Informacje o autorze
Śledź mnie na Twitterze: @ThisIsFlorianK
Dowiedz się więcej o mojej pracy: Florian Kempenich - Strona osobista
Install multiple versions of Python with some optional global packages
ansible-galaxy install TOOCS.python