TOOCS.python
TOOCS / Rol de Ansible: TOOCS.python
/!\ Este rol ha sido renombrado - Nombre antiguo:
FlorianKempenich.python-virtualenv/!\
- Instala múltiples versiones de python
pythonusandoasdf(opyenv) - Instala
pipenvpara todas las versiones - Opcional: Instala paquetes de pip globales para la versión predeterminada de python
¿Qué es TOOCS?
TOOCS - Las Configuraciones Unificadas de Un Solo Clic son un conjunto de herramientas / roles de ansible diseñados para configurar un sistema con un solo clic. Son una forma simple y confiable de configurar una herramienta específica. Puedes usarlo tal como está o, al inspeccionar su código, como un tutorial para seguir paso a paso.
Como su nombre indica, son un poco subjetivos: mientras garantizan configurar la herramienta dada en un solo clic, NO garantizan consistencia en cómo lo logran, las nuevas versiones pueden introducir cambios drásticos.
Lee el código y asegúrate de entender lo que está sucediendo.
Requisitos
Este rol solo funciona en MacOSX y Ubuntu/Debian.
Variables del Rol
python_versions- Lista de versiones de python para instalar
- El orden en que se enumeran será el orden en que se priorizarán
Aprende más sobre esto: Lista de versiones a instalar está ordenada - Requerido
global_pip_packages- Lista de paquetes de pip para instalar
- Los paquetes solo se instalarán para la versión predeterminada de python (la primera en la lista)
- Predeterminado:
[]
installation_method- Valores válidos:
asdf,pyenv - Ver Métodos de Instalación
- Predeterminado:
asdf
- Valores válidos:
asdf_skip_shell_setup- Omitir la configuración del shell al instalar
asdf - Ver Métodos de Instalación
- Predeterminado:
False
- Omitir la configuración del shell al instalar
Métodos de Instalación
asdf
Método de instalación preferido y predeterminado usando el administrador de versiones asdf
La instalación y configuración de asdf, así como la instalación de python, se delega a otro TOOCS: TOOCS.asdf.
Este TOOCS solo se encarga de instalar los módulos opcionales de pip globales.
Post instalación - con asdf: Configuración del shell
Si usas
zsh, ¡estás listo! Tu shell ha sido configurado automáticamente durante la instalación deasdf.Si NO usas
zshse requiere una configuración manual, ver: TOOCS/asdf - Usuarios nozshAlternativamente, si
asdfya está configurado en tu máquina, puedes omitir la configuración del shell deasdf=> Establecer la variableasdf_skip_shell_setupaTrue
pyenv
Método alternativo usando el administrador de versiones pyenv
Post instalación - con pyenv: Configuración del shell
Dado que pyenv se utiliza para gestionar las diferentes versiones de python, necesita ser activado en tu shell.
Simplemente agrega estas líneas a los archivos correspondientes:
~/.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
La razón por la que estamos dividiendo la inicialización entre estos dos archivos es para asegurar un funcionamiento fluido tanto con pyenv como con pipenv. De esa manera, la activación de pyenv solo se realiza una vez por shell de inicio de sesión y no interfiere con el sub-shell iniciado con pipenv shell.
Aprende más sobre esto: Problema de Pyenv #184 - Python incorrecto dentro de 'pipenv shell'
Ejemplo de 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
# O
- hosts: localhost
tasks:
- include_role:
name: TOOCS.python
vars:
python_versions:
- 3.7.0
installation_method: asdf
asdf_skip_shell_setup: True
# O
- hosts: localhost
tasks:
- include_role:
name: TOOCS.python
vars:
python_versions:
- 3.7.0
installation_method: pyenv
Licencia
MIT
Información del Autor
Sígueme en Twitter: @ThisIsFlorianK
Descubre más sobre mi trabajo: Florian Kempenich - Sitio Personal
Install multiple versions of Python with some optional global packages
ansible-galaxy install TOOCS.python