markosamuli.pyenv
markosamuli.pyenv
Gałąź | Pipeline |
---|---|
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
ansible-galaxy install markosamuli.pyenv