使用 ansible 而不是 pip2 安装 pip3 软件包



我正在尝试使用 ansiblevagrant 中设置一个 Django 项目。我使用以下代码来安装pip packages

- name: Setup Virtualenv
  pip: virtualenv={{ virtualenv_path }} virtualenv_python=python3 requirements={{ virtualenv_path }}/requirements.txt

我需要为 django 项目使用 python3,即使我已经明确提到使用 python3,它也installing the pip packages via pip2 .我已确保在虚拟机上安装了python3。

请帮我通过 pip3 安装软件包。

有同样的问题。使用executable有解决方法:

- name: Install and upgrade pip
  pip:
    name: pip
    extra_args: --upgrade
    executable: pip3

尝试使用executable选项。模块文档pip摘录:

executable(在 1.3 中新增(

显式可执行文件或可执行文件的路径名,用于为系统中安装的特定版本的 Python 运行 pip。例如 pip-3.3,如果系统中同时安装了 Python 2.7 和 3.3,并且您想为 Python 3.3 安装运行 pip。它不能与"virtualenv"参数(在 2.1 中添加(一起指定。默认情况下,它将采用 ansible 使用的 python 解释器的适当版本,例如 python 3 上的 pip3 和 python 2 上的 pip2 或 pip。

更新:

若要组合virtualenv路径和替代可执行文件,请使用如下所示virtualenv_command

- pip:
    virtualenv: /tmp/py3
    virtualenv_command: /usr/bin/python3 -m venv
    name: boto

virtualenv_command 需要绝对路径。

最新更新