TOOCS.python
TOOCS / Rola Ansible: TOOCS.python
/!\ Ta rola została zmieniona - Stara nazwa:
FlorianKempenich.python-virtualenv
/!\
- Instalacja wielu wersji Pythona
python
przy użyciuasdf
(lubpyenv
) - Instalacja
pipenv
dla 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 instalacjiasdf
.Jeśli NIE używasz
zsh
, wymagana jest konfiguracja ręczna, zobacz: TOOCS/asdf - Użytkownicy niezsh
Alternatywnie, jeśli
asdf
jest już skonfigurowany na Twoim komputerze, możesz pominąć automatyczną konfigurację powłokiasdf
=> Ustaw zmiennąasdf_skip_shell_setup
naTrue
.
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