Это установит одну и пропустит другую зависимость django, в зависимости от того, какой питон вы используете:

сно сПримечания к выпуску Django 2.0 Django 2.0 и выше будет поддерживать только Python 3, что делает 1.11.X последним выпуском, поддерживающим Python 2.

Смотрите цитату со страницы заметок о выпуске:

Django 2.0 поддерживает Python 3.4, 3.5 и 3.6. Мы настоятельно рекомендуем и только официально поддерживаем последний выпуск каждой серии.

Серия Django 1.11.x - последняя, ​​которая поддерживает Python 2.7.

Однако при запускеpip2 install Django, устанавливается версия django 2 (которая затем завершается ошибкой, поскольку предполагает, что функциональность недоступна в 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/

Я знаю, что могу вручную указать версию требования ниже 2, что делает установку pip верной для python 2, однако это усложнит процесс установки, если я захочу поддерживать как python2, так и python3, и предположил бы, что pip установит только совместимые версии с питоном, с которого он бежит.

Поэтому мои вопросы таковы:

Почему pip пытается установить Django2 с python2 вместо автоматического выбора последней совместимой версии? Разве это не частьpipвозможности?Есть ли способ сделать синглrequirements.txt это установитDjango<2.0 при запуске из python2 иDjango>=2.0 когда работает с python3?

Ответы на вопрос(1)

Ваш ответ на вопрос