Ответ 1
Я иногда испытывал некоторое неустойчивое поведение при указании virtualenv_command
(например: получение исполняемого файла python 2.7 в моем виртуальном пространстве, даже если я указал для запуска команды с virtualenv-3.4
.
Если у вас возникла эта проблема, вы можете создать virtualenv вручную с помощью модуля command
:
- name: Manually create the initial virtualenv
command: virtualenv /user/home/venvs/myenv -p python3.4 creates="/user/home/venvs/myenv"
(примечание: указав creates
, эта команда будет выполняться только в том случае, если virtualenv не существует в /user/home/venvs/myenv
).
Затем вы можете установить свои требования как обычно с помощью команды pip
:
- name: Install requirements
pip:
requirements=/my_app/requirements.txt
virtualenv=/user/home/venvs/myenv
Обновление
Я обнаружил, что указание virtualenv_python
(доступно в Ansible 2.0+) также, похоже, работает в случае, указанном выше. Например:
- name: Install requirements
pip:
requirements: /my_app/requirements.txt
virtualenv: /user/home/venvs/myenv
virtualenv_python: python3.4
(с этим вам не нужно вручную создавать виртуальную машину)