TOOCS.python
TOOCS / Rôle Ansible : TOOCS.python
/!\ Ce rôle a été renommé - Ancien nom :
FlorianKempenich.python-virtualenv
/!\
- Installer plusieurs versions de
python
en utilisantasdf
(oupyenv
) - Installer
pipenv
pour toutes les versions - Optionnel : Installer des paquets pip globaux pour la version par défaut de python
TOOCS ?
TOOCS - Les installations à un clic sont une série d'outils / rôles ansible conçus pour configurer un système en un clic. Ce sont un moyen simple et fiable de configurer un outil donné. Vous pouvez les utiliser tels quels ou, en inspectant leur code, comme un tutoriel à suivre étape par étape.
Ils sont, comme leur nom l'indique, opinionnés : bien qu'ils garantissent de configurer l'outil donné en un clic, ils ne garantissent pas la cohérence dans comment ils le font, de nouvelles versions peuvent introduire des changements incompatibles.
Lisez le code et assurez-vous de comprendre ce qui se passe !
Exigences
Ce rôle fonctionne uniquement sur MacOSX et Ubuntu/Debian.
Variables de rôle
python_versions
- Liste des versions de python à installer
- L'ordre dans lequel elles sont listées déterminera l'ordre de priorité
En savoir plus : Liste des versions à installer est ordonnée - Obligatoire
global_pip_packages
- Liste des paquets pip à installer
- Les paquets ne seront installés que pour la version par défaut de python (la première de la liste)
- Par défaut :
[]
installation_method
- Valeurs valides :
asdf
,pyenv
- Voir Méthodes d'installation
- Par défaut :
asdf
- Valeurs valides :
asdf_skip_shell_setup
- Ignorer la configuration du shell lors de l'installation d'
asdf
- Voir Méthodes d'installation
- Par défaut :
False
- Ignorer la configuration du shell lors de l'installation d'
Méthodes d'installation
asdf
Méthode d'installation préférée et par défaut utilisant le gestionnaire de version asdf
L'installation et la configuration d'asdf
ainsi que l'installation de python sont déléguées à un autre TOOCS : TOOCS.asdf.
Ce TOOCS ne s'occupe que de l'installation des modules pip globaux optionnels.
Après l'installation - avec asdf
: Configuration du shell
Si vous utilisez
zsh
, c'est tout ! Votre shell a été automatiquement configuré lors de l'installation d'asdf
.Si vous n'utilisez PAS
zsh
, une configuration manuelle est requise, voir : TOOCS/asdf - Utilisateurs nonzsh
Sinon, si
asdf
est déjà configuré sur votre machine, vous voudrez peut-être ignorer la configuration automatique du shell d'asdf
=> Mettez la variableasdf_skip_shell_setup
àTrue
pyenv
Version alternative utilisant le gestionnaire de version pyenv
Après l'installation - avec pyenv
: Configuration du shell
Comme pyenv
est utilisé pour gérer les différentes versions de python
, il doit être activé dans votre shell.
Ajoutez simplement ces lignes aux fichiers correspondants :
~/.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 raison pour laquelle nous divisons l'initialisation entre ces deux fichiers est d'assurer un fonctionnement fluide avec pyenv
et pipenv
. De cette façon, l'activation de pyenv
ne se fait qu'une seule fois par shell de connexion et n'interfère pas avec le sous-shell démarré avec pipenv shell
.
En savoir plus : Problème Pyenv #184 - Mauvais Python à l'intérieur de 'pipenv shell'
Exemple 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
# OU
- hosts: localhost
tasks:
- include_role:
name: TOOCS.python
vars:
python_versions:
- 3.7.0
installation_method: asdf
asdf_skip_shell_setup: True
# OU
- hosts: localhost
tasks:
- include_role:
name: TOOCS.python
vars:
python_versions:
- 3.7.0
installation_method: pyenv
Licence
MIT
Informations sur l'auteur
Suivez-moi sur Twitter : @ThisIsFlorianK
En savoir plus sur mon travail : Florian Kempenich - Site personnel
Install multiple versions of Python with some optional global packages
ansible-galaxy install TOOCS.python