Подтвердить что ты не робот

Невозможно создать виртуальный

Как вы создаете virtualenv для конкретной версии python, используя ansible. Есть ли команда в стандартной библиотеке?

Мне хотелось бы что-то вроде:

- virtualenv: dest=venv python_version:/usr/bin/python3
4b9b3361

Ответ 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

(с этим вам не нужно вручную создавать виртуальную машину)

Ответ 2

Вы можете сделать это с помощью pip и конкретного virtualenv двоичного файла:

- pip: virtualenv=/path/to/venv virtualenv_command=/path/to/virtualenv3 ...

Ответ 3

С помощью ansible 2.0 вы можете указать версию python для своего виртуального пользователя с помощью virtualenv_python

Например:

- name: Initiate virtualenv
  pip: virtualenv="{{ virtualenv_dir }}" 
       virtualenv_python=python3.4
       requirements={{ app_dir }}/requirements.txt