Ansible - 尝试python3.5时找不到Virtualenv可执行文件

时间:2017-02-24 00:57:09

标签: python ansible virtualenv

有没有办法修复pip模块无法找到合适的python版本?关键问题似乎是virtualenv_python

- name: Create venv and install requirements
  pip:
    requirements: /home/admin/dev/python/filepro/requirements.txt
    virtualenv: /home/admin/venvs/filepro
    virtualenv_python: python3.5
  tags:
    - venv

错误:

Error message:
FAILED! => {"changed": false, "failed": true, "msg": "Failed to find required executable virtualenv"}

/usr/bin/python3.5是python 3.5的地方,我正在使用Ansible 2.2.1.0

3 个答案:

答案 0 :(得分:5)

首先,您需要确保为要使用的Python版本安装virtualenv。您可以在运行pip模块之前执行此操作:

- name: Install virtualenv via pip
  pip:
    name: virtualenv
    executable: pip3

如果您不希望(或不能)以root身份安装virualenv,Ansible将无法获取virtualenv可执行文件。您可以手动将其添加到PATH环境变量:

- name: Create venv and install requirements
  pip:
    requirements: /home/admin/dev/python/filepro/requirements.txt
    virtualenv: /home/admin/venvs/filepro
    virtualenv_python: python3.5
  tags:
    - venv
  environment:
    PATH: "{{ ansible_env.PATH }}:{{ ansible_user_dir }}/.local/bin"

或者,您可以以root用户身份安装vitualenv:

- name: Install virtualenv via pip
  pip:
    name: virtualenv
    executable: pip3
  become: yes
  become_user: root

答案 1 :(得分:0)

问题是virtualenv没有安装为sudo。

如果我错了,请纠正我,但似乎要让pip模块与virtualenv配合使用,您需要运行sudo pip install virtualenv

答案 2 :(得分:0)

您可以使用以下内容通过python3-venv模块创建虚拟环境

首先,您需要在目标服务器中安装python3-venv软件包

使用$ sudo apt install python3-venv

安装

然后,在您的任务中,您可以按照以下步骤创建虚拟环境

- name: "Setup Virtual Env",
  pip:
     - requirements: path/to/requirements.txt # this is optional
     - virtualenv: path/to/required/virtual_env_destination
     - virtualenv_command: 'python3 -m venv'

也无需使用virtualenv_python参数