Por que o django 2 está disponível no python 2?

De acordo comNotas de versão do Django 2.0 O Django 2.0 em diante suportará apenas o python 3, tornando o 1.11.X a última série de lançamentos a suportar o python 2.

Veja a citação na página de notas de versão:

O Django 2.0 suporta Python 3.4, 3.5 e 3.6. É altamente recomendável e apoiamos apenas oficialmente a versão mais recente de cada série.

A série Django 1.11.x é a última a suportar o Python 2.7.

No entanto, ao executarpip2 install Django, o django versão 2 está sendo instalado (que falhará porque assume a funcionalidade não disponível no 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/

Eu sei que posso especificar manualmente a versão do requisito abaixo de 2, tornando o pip install uma versão válida para python 2, no entanto, isso complicará o processo de instalação se eu quiser dar suporte ao python2 e python3 e teria assumido que o pip saberá instalar apenas versões compatíveis com o python que está sendo executado.

Minhas perguntas, portanto, são as seguintes:

Por que o pip está tentando instalar o Django2 com python2 em vez de escolher automaticamente a última versão compatível? Isso não faz parte depips capacidades?Existe uma maneira de fazer uma únicarequirements.txt que instalaráDjango<2.0 ao executar a partir de python2 eDjango>=2.0 ao executar com python3?

questionAnswers(1)

yourAnswerToTheQuestion