TOOCS.python
TOOCS / Ansible Rolle: TOOCS.python
/!\ Diese Rolle wurde umbenannt - Alter Name:
FlorianKempenich.python-virtualenv
/!\
- Installiere mehrere Python-Versionen
python
mitasdf
(oderpyenv
) - Installiere
pipenv
für alle Versionen - Optional: Installiere globale Pip-Pakete für die Standardversion von Python
TOOCS?
TOOCS - Die Meinungsbetonten Ein-Klick-Setups sind eine Sammlung von Werkzeugen / Ansible-Rollen, die dafür entwickelt wurden, ein System mit einem Klick einzurichten. Sie bieten einen einfachen, zuverlässigen Weg, ein bestimmtes Tool einzurichten. Du kannst sie so verwenden, wie sie sind, oder ihren Code als Schritt-für-Schritt-Tutorial nutzen.
Sie sind, wie der Name schon sagt, meinungsbetont: Während sie garantieren, das gegebene Tool mit einem Klick einzurichten, garantieren sie nicht die Konsistenz in wie sie dies erreichen, neue Versionen können breaking changes enthalten.
Lies den Code und stelle sicher, dass du verstehst, was passiert!
Anforderungen
Diese Rolle funktioniert nur auf MacOSX & Ubuntu/Debian.
Rollen-Variablen
python_versions
- Liste der installierenden Python-Versionen
- Die Reihenfolge, in der sie aufgelistet sind, ist die Prioritätsreihenfolge
Mehr dazu: Liste der zu installierenden Versionen ist geordnet - Erforderlich
global_pip_packages
- Liste der Pip-Pakete, die installiert werden sollen
- Die Pakete werden nur für die Standardversion von Python (die erste in der Liste) installiert
- Standard:
[]
installation_method
- Gültige Werte:
asdf
,pyenv
- Siehe Installationsmethoden
- Standard:
asdf
- Gültige Werte:
asdf_skip_shell_setup
- Überspringe die Shell-Einrichtung beim Installieren von
asdf
- Siehe Installationsmethoden
- Standard:
False
- Überspringe die Shell-Einrichtung beim Installieren von
Installationsmethoden
asdf
Bevorzugte und Standard-Installationsmethode mit dem asdf
Versionsmanager
Die Installation und Konfiguration von asdf
sowie die Python-Installation werden an ein weiteres TOOCS delegiert: TOOCS.asdf.
Dieses TOOCS kümmert sich nur um die Installation der optionalen globalen Pip-Module.
Nach der Installation - mit asdf
: Shell-Konfiguration
Wenn du
zsh
verwendest, ist alles in Ordnung! Deine Shell wurde während der Installation vonasdf
automatisch eingerichtet.Wenn du NICHT
zsh
verwendest, ist eine manuelle Einrichtung erforderlich, siehe: TOOCS/asdf - Nichtzsh
-BenutzerAlternativ, wenn
asdf
bereits auf deinem Computer eingerichtet ist, möchtest du vielleicht die automatische Shell-Einrichtung vonasdf
überspringen => Setze die Variableasdf_skip_shell_setup
aufTrue
.
pyenv
Alternative Version mit dem pyenv
Versionsmanager
Nach der Installation - mit pyenv
: Shell-Konfiguration
Da pyenv
verwendet wird, um die verschiedenen python
-Versionen zu verwalten, muss es in deiner Shell aktiviert werden.
Füge einfach diese Zeilen in die entsprechenden Dateien ein:
~/.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
Der Grund, warum wir die Initialisierung zwischen diesen beiden Dateien aufteilen, ist, einen reibungslosen Betrieb mit sowohl pyenv
als auch pipenv
zu gewährleisten. So wird die pyenv
-Aktivierung nur einmal pro Login-Shell durchgeführt und stört nicht die Sub-Shell, die mit pipenv shell
gestartet wird.
Mehr dazu: Pyenv Issue #184 - Falsches Python innerhalb von 'pipenv shell'
Beispiel-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
# ODER
- hosts: localhost
tasks:
- include_role:
name: TOOCS.python
vars:
python_versions:
- 3.7.0
installation_method: asdf
asdf_skip_shell_setup: True
# ODER
- hosts: localhost
tasks:
- include_role:
name: TOOCS.python
vars:
python_versions:
- 3.7.0
installation_method: pyenv
Lizenz
MIT
Autor Informationen
Folge mir auf Twitter: @ThisIsFlorianK
Erfahre mehr über meine Arbeit: Florian Kempenich - Persönliche Webseite
Install multiple versions of Python with some optional global packages
ansible-galaxy install TOOCS.python