TOOCS.python
TOOCS / Rol de Ansible: TOOCS.python
/!\ Este rol ha sido renombrado - Nombre antiguo:
FlorianKempenich.python-virtualenv
/!\
- Instala múltiples versiones de python
python
usandoasdf
(opyenv
) - Instala
pipenv
para 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
zsh
se requiere una configuración manual, ver: TOOCS/asdf - Usuarios nozsh
Alternativamente, si
asdf
ya está configurado en tu máquina, puedes omitir la configuración del shell deasdf
=> Establecer la variableasdf_skip_shell_setup
aTrue
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