markosamuli.pyenv

markosamuli.pyenv

Ocena jakości Ansible Rola Ansible Wydanie na GitHubie Licencja

Gałąź Pipeline
master master

Rola Ansible do instalacji pyenv i pyenv-virtualenv na komputerach deweloperskich z Ubuntu lub macOS.

Opcjonalnie, można zainstalować pyenv-virtualenvwrapper do zarządzania środowiskami.

Nie używaj tej roli na serwerach produkcyjnych, ponieważ wspiera ona instalację pyenv tylko w katalogu domowym użytkownika.

Instalacja za pomocą Homebrew na macOS

Domyślną metodą instalacji pyenv i wtyczek na macOS jest użycie Homebrew.

Rola nie wie, jak migracja z istniejących instalacji Homebrew do instalacji opartych na Git, więc spróbuje wykryć jakąkolwiek istniejącą instalację i nadal używać poprzedniej metody.

Jeśli chcesz dokonać migracji, zrób kopię zapasową i usuń swój istniejący katalog ~/.pyenv przed uruchomieniem tej roli.

Instalacja za pomocą Homebrew na Linuksie

Rola zawiera eksperymentalne wsparcie dla instalacji pyenv i wtyczek przy użyciu Homebrew na Linuksie.

Rola nie instaluje Homebrew na Linuksie i oczekuje, że będzie on zainstalowany w domyślnej lokalizacji /home/linuxbrew/.linuxbrew.

Instalacja wersji Pythona za pomocą pyenv na Linuksie przy istniejącej instalacji Homebrew ma znane problemy:

  • rozszerzenie readline nie zostało skompilowane, zainstalowano pyenv przez Linuxbrew na Ubuntu 16 #1479

Zainstalowane wersje Pythona

Ta rola instaluje wersje Pythona zdefiniowane w zmiennej pyenv_python_versions.

Aby ustawić wersję globalną, ustaw zmienną pyenv_global na pożądane wersje.

pyenv_global: "{{ pyenv_python37_version }} system"

To jest skonfigurowane do użycia najnowszych wersji Pythona 2 i 3 oraz wersji systemowej jako domyślnej.

Zmiany w plikach konfiguracyjnych powłoki

Ta rola tworzy plik konfiguracyjny w ~/.pyenv/.pyenvrc, który jest ładowany w plikach .bashrc i .zshrc.

Autouzupełnianie jest ładowane domyślnie.

Jeśli zarządzasz swoimi skryptami powłoki .dotfiles lub używasz frameworka, powinieneś ustawić pyenv_init_shell na false i samodzielnie zaktualizować te pliki, aby zachować ich porządek.

Przykładowa konfiguracja .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

Przykładowa konfiguracja .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

Zmienne roli

Ścieżka do ~/.pyenv opiera się na zmiennych środowiskowych:

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

Aktualizuj pliki .bashrc i .zshrc w katalogu domowym użytkownika:

pyenv_init_shell: true

Wersje do zainstalowania:

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

Najnowsze wersje Pythona 3.7 i 3.8:

pyenv_python37_version: "3.7.6"
pyenv_python38_version: "3.8.1"

Wersje Pythona 2 i 3 są instalowane domyślnie:

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

Ustaw wersję globalną na Pythona 3.7 z fallbackiem na system:

pyenv_global: "{{ pyenv_python37_version }} system"

Zainstaluj wtyczkę virtualenvwrapper:

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

Instalacja za pomocą menedżera pakietów Homebrew na macOS:

pyenv_install_from_package_manager: true

Wykryj istniejącą metodę instalacji i użyj jej:

pyenv_detect_existing_install: true

Instalacja przy użyciu Homebrew na Linuksie:

pyenv_homebrew_on_linux: true

Przykładowy Playbook

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

Aktualizacja wersji

Uruchom następujące skrypty, aby uzyskać najnowsze wydania z GitHub i zaktualizować je w domyślnych ustawieniach roli.

Aktualizuj wydanie pyenv:

./update-release pyenv

Aktualizuj wydanie pyenv-virtualenv:

./update-release pyenv-virtualenv

Aktualizuj domyślną wersję [Pythona] 3.7:

./update-python python37

Aktualizuj domyślną wersję [Pythona] 3.8:

./update-python python38

Aktualizuj wszystkie wersje:

make update

Styl kodowania

Zainstaluj hooki pre-commit i zweryfikuj styl kodu:

make lint

Uruchom testy

Uruchom testy na Ubuntu i Debianie używając Dockera:

make test

Podziękowania

Użycie pliku .pyenvrc i części używane do instalacji wersji Pythona pochodzi z roli avanov.pyenv.

Rozwój

Zainstaluj zależności deweloperskie w lokalnym virtualenv:

make setup

Zainstaluj hooki pre-commit:

make install-git-hooks

Zmiany

Licencja

Informacje o autorze

O projekcie

Installs pyenv and pyenv-virtualenv

Zainstaluj
ansible-galaxy install markosamuli.pyenv
Licencja
mit
Pobrania
15.8k
Właściciel
Random hacker. Engineering at @echo-health