TOOCS.python

Build-Status Ansible Rolle

TOOCS / Ansible Rolle: TOOCS.python

/!\ Diese Rolle wurde umbenannt - Alter Name: FlorianKempenich.python-virtualenv /!\

  • Installiere mehrere Python-Versionen python mit asdf (oder pyenv)
  • 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

  • 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

  • asdf_skip_shell_setup

    • Überspringe die Shell-Einrichtung beim Installieren von asdf
    • Siehe Installationsmethoden
    • Standard: False

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 von asdf automatisch eingerichtet.

  • Wenn du NICHT zsh verwendest, ist eine manuelle Einrichtung erforderlich, siehe: TOOCS/asdf - Nicht zsh-Benutzer

  • Alternativ, wenn asdf bereits auf deinem Computer eingerichtet ist, möchtest du vielleicht die automatische Shell-Einrichtung von asdf überspringen => Setze die Variable asdf_skip_shell_setup auf True.


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

Über das Projekt

Install multiple versions of Python with some optional global packages

Installieren
ansible-galaxy install TOOCS.python
GitHub Repository
Lizenz
mit
Downloads
117
Besitzer
The Opinionated One-Click Setups - TOOCS - Logo made with DesignEvo (www.designevo.com)