Possibilité de créer une virtualenv
comment créer un virtualenv pour une version python spécifique en utilisant ansible. Y a-t-il une commande dans la bibliothèque standard?
je voudrais quelque chose comme:
- virtualenv: dest=venv python_version:/usr/bin/python3
3 réponses
j'ai parfois eu un comportement erratique en spécifiant virtualenv_command
(par exemple: obtenir un exécutable Python 2.7 dans mon virtualenv même si j'ai spécifié d'exécuter la commande avec virtualenv-3.4
.
si vous éprouvez ce problème, vous créer le virtualenv manuellement avec l' command
module:
- name: Manually create the initial virtualenv
command: virtualenv /user/home/venvs/myenv -p python3.4 creates="/user/home/venvs/myenv"
(note: en spécifiant creates
cette commande ne s'exécute que si un virtualenv n'existe pas à /user/home/venvs/myenv
).
Ensuite, vous pouvez installer vos exigences comme d'habitude avec le pip
commande:
- name: Install requirements
pip:
requirements=/my_app/requirements.txt
virtualenv=/user/home/venvs/myenv
mise à Jour
j'ai trouvé que spécifier le virtualenv_python
(disponible en Ansible 2.0+) semble également fonctionner dans le cas indiqué ci-dessus. Par exemple:
- name: Install requirements
pip:
requirements: /my_app/requirements.txt
virtualenv: /user/home/venvs/myenv
virtualenv_python: python3.4
(avec ceci vous ne devriez pas avoir besoin de créer manuellement le virtualenv en premier)
avec ansible 2.0 vous pouvez spécifier une version python pour votre virtualenv avec virtualenv_python
Par exemple:
- name: Initiate virtualenv
pip: virtualenv="{{ virtualenv_dir }}"
virtualenv_python=python3.4
requirements={{ app_dir }}/requirements.txt