¿Por qué está disponible django 2 en Python 2?

De acuerdo aNotas de la versión de Django 2.0 Django 2.0 en adelante solo admitirá python 3, lo que hace que 1.11.X sea la última serie de lanzamiento compatible con python 2.

Consulte la cita de la página de notas de la versión:

Django 2.0 es compatible con Python 3.4, 3.5 y 3.6. Recomendamos encarecidamente y solo admitimos oficialmente la última versión de cada serie.

La serie Django 1.11.x es la última que admite Python 2.7.

Sin embargo, cuando se ejecutapip2 install Django, se está instalando django versión 2 (que luego falla porque supone que la funcionalidad no está disponible en python 2):

(venv-crap) mbp15:server nir$ pip2 install django
Collecting django
  Downloading Django-2.0.tar.gz (8.0MB)
    100% |████████████████████████████████| 8.0MB 177kB/s 
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/private/PATH/django/setup.py", line 32, in <module>
        version = __import__('django').get_version()
      File "django/__init__.py", line 1, in <module>
        from django.utils.version import get_version
      File "django/utils/version.py", line 61, in <module>
        @functools.lru_cache()
    AttributeError: 'module' object has no attribute 'lru_cache'

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /private/PATH/django/

Sé que puedo especificar manualmente la versión requerida debajo de 2, haciendo que pip install sea una versión válida para python 2, sin embargo, eso complicará el proceso de instalación si quiero admitir tanto python2 como python3, y habría asumido que pip sabrá instalar solo versiones compatibles con la pitón que se está ejecutando.

Mis preguntas, por lo tanto, son las siguientes:

¿Por qué pip intenta instalar Django2 con python2 en lugar de elegir automáticamente la última versión compatible? ¿No es eso parte depips capacidades?¿Hay alguna manera de hacer un solorequirements.txt eso instalaráDjango<2.0 cuando se ejecuta desde python2 yDjango>=2.0 cuando se ejecuta con python3?

Respuestas a la pregunta(1)

Su respuesta a la pregunta