使用ansible而不是pip2安装pip3包

时间:2017-06-09 10:18:22

标签: django vagrant pip ansible

我正在尝试在vagrant using ansible中设置Django项目。我使用以下代码安装pip packages

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

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

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

2 个答案:

答案 0 :(得分:7)

尝试使用bms.allow_format_migration=true选项。摘自executable模块doc

  

pip(在1.3中添加)

     

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

更新

要合并executable路径和备用可执行文件,请使用virtualenv,如下所示:

virtualenv_command

- pip: virtualenv: /tmp/py3 virtualenv_command: /usr/bin/python3 -m venv name: boto 需要绝对路径。

答案 1 :(得分:0)

有同样的问题。有使用 executable:

的解决方法
- name: Install and upgrade pip
  pip:
    name: pip
    extra_args: --upgrade
    executable: pip3