在 RHEL 中使用 Ansible 安装 Django 失败

Django installation fails using Ansible in RHEL

我有以下剧本:

---
- hosts: app
  become: yes
  tasks:
    - name: Install MySQL-Python
      yum: name=MySQL-python state=present

    - name: Install Python Setup Tools
      yum: name=python-setuptools state=present

    - name: Install django
      easy_install: name=django state=present

失败并出现错误:

This version of Django requires Python 3.4, but you're trying to\ninstall it on Python 2.7.\n\nThis may be because you are using a version of pip that doesn't\nunderstand the python_requires classifier. Make sure you\nhave pip >= 9.0 and setuptools >= 24.2, then try again:\n\n $ python -m pip install --upgrade pip setuptools\n $ python -m pip install django\n\nThis will install the latest version of Django which works on your\nversion of Python. If you can't upgrade your pip (or Python), request\nan older version of Django:\n\n $ python -m pip install \"django<2\"\nerror: Setup script exited with 1\n"}

我按照 this article 安装了 Python 3 并设置了 python=python3,但是当我 运行 剧本时,我遇到了同样的错误信息。

有人可以建议怎么做吗?另外,我是否使用 Ansible 安装了以前版本的 Django?

我会使用 pip module 而不是 easy_install 来安装 Django。您可以使用 executablepip 用于 Python 3.4。您可以使用 version 指定要使用的版本 - 如果您决定使用 Python 2,则需要安装 Django<2.

- name: Install django
  pip: 
    name: django
    executable: pip-3.4
    version: 2.0.4

请注意,MySQL-Python 已经好几年没有得到支持了。最好用fork mysqlclient,支持Python 3.

您还应该考虑在虚拟环境中安装您的模块。