Ansible - 尝试 python3.5 时未找到 Virtualenv 可执行文件
Ansible - Virtualenv executable not found when trying python3.5
有没有办法解决 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
问题是 virtualenv 没有安装为 sudo。
如果我错了请纠正我,但似乎要让 pip 模块与 virtualenv 一起工作你需要 运行 sudo pip install virtualenv
首先,您需要确保为您打算使用的 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
您可以使用以下方法使用 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'
也不需要使用virtualenv_python
参数
有没有办法解决 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
问题是 virtualenv 没有安装为 sudo。
如果我错了请纠正我,但似乎要让 pip 模块与 virtualenv 一起工作你需要 运行 sudo pip install virtualenv
首先,您需要确保为您打算使用的 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
您可以使用以下方法使用 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'
也不需要使用virtualenv_python
参数