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

Jim*_*tor 3 python virtualenv ansible

有没有办法解决无法找到正确的python版本的pip模块?关键问题似乎在于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
Run Code Online (Sandbox Code Playgroud)

错误:

Error message:
FAILED! => {"changed": false, "failed": true, "msg": "Failed to find required executable virtualenv"}
Run Code Online (Sandbox Code Playgroud)

/usr/bin/python3.5 是python 3.5所在的位置,我正在使用 Ansible 2.2.1.0

rla*_*lat 6

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

-名称:通过pip安装virtualenv
  点:
    名称:virtualenv
    可执行文件:pip3

如果您不想(或不能)以root用户身份安装virualenv,Ansible将无法选择virtualenv可执行文件。您可以将其手动添加到PATH环境变量中:

-名称:创建venv并安装要求
  点:
    要求:/home/admin/dev/python/filepro/requirements.txt
    virtualenv:/ home / admin / venvs / filepro
    virtualenv_python:python3.5
  标签:
    -venv
  环境:
    PATH:“ {{ansible_env.PATH}}:{{ansible_user_dir}} /。local / bin”

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

-名称:通过pip安装virtualenv
  点:
    名称:virtualenv
    可执行文件:pip3
  成为:是的
  成为用户:root


Sho*_*obi 6

python3-venv您可以使用以下命令使用模块创建虚拟环境

首先,python3-venv你的目标服务器中需要有包

安装它使用$ sudo apt install python3-venv

然后在你的 ansible 任务中你可以创建虚拟环境,如下所示

- 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'
Run Code Online (Sandbox Code Playgroud)

virtualenv_python也不需要使用参数