markosamuli.pyenv

markosamuli.pyenv

Ansible Qualitätsbewertung Ansible Rolle GitHub Veröffentlichung Lizenz

Branch Pipeline
master master

Ansible-Rolle zur Installation von pyenv und pyenv-virtualenv auf Ubuntu- oder macOS-Entwicklungsmaschinen.

Optional kann pyenv-virtualenvwrapper installiert und zur Verwaltung von Umgebungen verwendet werden.

Verwenden Sie diese Rolle nicht auf Produktionsservern, da die Installation von pyenv nur im Home-Verzeichnis des Benutzers unterstützt wird.

Installation über Homebrew auf macOS

Die Standardmethode zur Installation von pyenv und Plugins auf macOS ist die Verwendung von Homebrew.

Die Rolle kann nicht erkennen, wie von bestehenden Homebrew-Installationen auf Git-basierte Installationen migriert wird, daher wird sie versuchen, eine vorhandene Installation zu erkennen und die vorherige Methode weiterhin zu verwenden.

Wenn Sie migrieren möchten, sichern Sie Ihr bestehendes ~/.pyenv-Verzeichnis und löschen Sie es, bevor Sie diese Rolle ausführen.

Installation über Homebrew auf Linux

Die Rolle bietet eine experimentelle Unterstützung für die Installation von pyenv und Plugins mit Homebrew auf Linux.

Die Rolle installiert Homebrew auf Linux selbst nicht und erwartet, dass es im Standardverzeichnis /home/linuxbrew/.linuxbrew installiert ist.

Das Installieren von Python-Versionen mit pyenv auf Linux, wenn die Homebrew-Installation vorhanden ist, hat einige bekannte Probleme:

  • readline-Erweiterung wurde nicht kompiliert, pyenv wurde von Linuxbrew auf Ubuntu 16 installiert #1479

Installierte Python-Versionen

Diese Rolle installiert die in der Variable pyenv_python_versions definierten Python-Versionen.

Um die globale Version festzulegen, setzen Sie die Variable pyenv_global auf die gewünschten Version(en).

pyenv_global: "{{ pyenv_python37_version }} system"

Dies ist so konfiguriert, dass die neuesten Python 2- und Python 3-Versionen sowie die Systemversion als Standard verwendet werden.

Änderungen an Shell-Konfigurationsdateien

Diese Rolle erstellt eine Konfigurationsdatei in ~/.pyenv/.pyenvrc, die in den Dateien .bashrc und .zshrc geladen wird.

Die Codevervollständigung wird standardmäßig geladen.

Wenn Sie Ihre Shell-Skripte .dotfiles verwalten oder ein Framework verwenden, sollten Sie pyenv_init_shell auf false setzen und diese Dateien selbst aktualisieren, um sie sauber zu halten.

Referenzkonfiguration für .bashrc:

if [ -e "$HOME/.pyenv/.pyenvrc" ]; then
  source $HOME/.pyenv/.pyenvrc
  if [ -e "$HOME/.pyenv/completions/pyenv.bash" ]; then
    source $HOME/.pyenv/completions/pyenv.bash
  elif [ -e "/usr/local/opt/pyenv/completions/pyenv.bash" ]; then
    source /usr/local/opt/pyenv/completions/pyenv.bash
  fi
fi

Referenzkonfiguration für .zshrc:

if [ -e "$HOME/.pyenv/.pyenvrc" ]; then
  source $HOME/.pyenv/.pyenvrc
  if [ -e "$HOME/.pyenv/completions/pyenv.zsh" ]; then
    source $HOME/.pyenv/completions/pyenv.zsh
  elif [ -e "/usr/local/opt/pyenv/completions/pyenv.zsh" ]; then
    source /usr/local/opt/pyenv/completions/pyenv.zsh
  fi
fi

Rollenvariablen

Der Pfad zu ~/.pyenv basiert auf Umgebungsvariablen:

pyenv_home: "{{ ansible_env.HOME }}"
pyenv_root: "{{ ansible_env.HOME }}/.pyenv"

Update der .bashrc- und .zshrc-Dateien im Home-Verzeichnis des Benutzers:

pyenv_init_shell: true

Versionen, die installiert werden sollen:

pyenv_version: "v1.2.13"
pyenv_virtualenv_version: "v1.1.5"
pyenv_virtualenvwrapper_version: "v20140609"

Neueste Python 3.7- und Python 3.8-Versionen:

pyenv_python37_version: "3.7.6"
pyenv_python38_version: "3.8.1"

Python 2- und Python 3-Versionen werden standardmäßig installiert:

pyenv_python_versions:
  - "{{ pyenv_python37_version }}"
  - "{{ pyenv_python38_version }}"

Setzen Sie die globale Version auf Python 3.7 mit Fallback auf system:

pyenv_global: "{{ pyenv_python37_version }} system"

Installieren Sie das virtualenvwrapper-Plugin:

pyenv_virtualenvwrapper: false
pyenv_virtualenvwrapper_home: "{{ ansible_env.HOME }}/.virtualenvs"

Installation über Homebrew-Paketmanager auf macOS:

pyenv_install_from_package_manager: true

Erkennen Sie die Methode der vorhandenen Installation und verwenden Sie diese:

pyenv_detect_existing_install: true

Installation über Homebrew auf Linux:

pyenv_homebrew_on_linux: true

Beispiel-Playbook

- hosts: localhost
  connection: local
  become: false
  roles:
    - role: markosamuli.pyenv

Aktualisierung der Versionen

Führen Sie die folgenden Skripte aus, um die neuesten Versionen von GitHub zu erhalten und diese in den Rollen-Standardeinstellungen zu aktualisieren.

Aktualisieren Sie die pyenv-Version:

./update-release pyenv

Aktualisieren Sie die pyenv-virtualenv-Version:

./update-release pyenv-virtualenv

Aktualisieren Sie die Standard-Python 3.7-Version:

./update-python python37

Aktualisieren Sie die Standard-Python 3.8-Version:

./update-python python38

Aktualisieren Sie alle Versionen:

make update

Codierungsstil

Installieren Sie Pre-Commit-Hooks und prüfen Sie den Codierungsstil:

make lint

Tests ausführen

Führen Sie Tests unter Ubuntu und Debian mithilfe von Docker aus:

make test

Danksagungen

Verwendung der Datei .pyenvrc und Teile zur Installation der Python-Version stammen aus der Rolle avanov.pyenv.

Entwicklung

Installieren Sie die Entwicklungsabhängigkeiten in einem lokalen virtualenv:

make setup

Installieren Sie Pre-Commit-Hooks:

make install-git-hooks

Änderungen

Lizenz

Autorinformationen

Über das Projekt

Installs pyenv and pyenv-virtualenv

Installieren
ansible-galaxy install markosamuli.pyenv
Lizenz
mit
Downloads
15.8k
Besitzer
Random hacker. Engineering at @echo-health