Ansible-尝试python3.5时未找到Virtualenv可执行文件
有没有办法修复pip模块无法找到正确的python版本的问题?关键问题似乎在于Ansible-尝试python3.5时未找到Virtualenv可执行文件,python,ansible,virtualenv,Python,Ansible,Virtualenv,有没有办法修复pip模块无法找到正确的python版本的问题?关键问题似乎在于virtualenv\u python - name: Create venv and install requirements pip: requirements: /home/admin/dev/python/filepro/requirements.txt virtualenv: /home/admin/venvs/filepro virtualenv_python: python3.
virtualenv\u 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
是python3.5的所在,我使用的是Ansible 2.2.1.0
问题是virtualenv没有作为sudo安装
如果我错了,请纠正我的错误,但是要让pip模块与virtualenv一起工作,您需要运行
sudo pip install virtualenv
,首先,您需要确保安装的virtualenv适用于您打算使用的Python版本。在运行pip模块之前,您可以通过以下方式执行此操作:
- name: Install virtualenv via pip
pip:
name: virtualenv
executable: pip3
-名称:通过pip安装virtualenv
pip:
姓名:virtualenv
可执行文件: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"
-名称:创建venv并安装要求
pip:
要求:/home/admin/dev/python/filepro/requirements.txt
virtualenv:/home/admin/venvs/filepro
virtualenv_python:python3.5
标签:
-文夫
环境:
路径:“{ansible\u env.PATH}}:{{{ansible\u user\u dir}}/.local/bin”
或者,您可以以root用户身份安装vitualenv:
- name: Install virtualenv via pip
pip:
name: virtualenv
executable: pip3
become: yes
become_user: root
-名称:通过pip安装virtualenv
pip:
姓名:virtualenv
可执行文件:pip3
变成:是的
成为用户:root
您可以使用
python3-venv
模块使用以下内容创建虚拟环境
首先,您需要在目标服务器中安装python3venv
包
使用$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'
无需使用virtualenv_python
参数也要确保您有最新的ansible,因为在2.2.0版本中,pip模块中有一个bug,2.2.0版本之后的任何东西都很有用。