为什么pip尝试使用python2安装Django2,而不是自动选择最新的兼容版本?这不是点子功能的一部分吗?
正如[lasdair在评论中已经指出的那样,这是Django中的一个已知错误:bug#28878。
有没有一种方法可以创建一个requirements.txt文件,从python2运行时将安装Django <2.0,而在python3运行时将安装Django> = 2.0?
# requirements.txt
django>=1.11,<2.0; python_version<"3.4"
django>=2.0; python_version>="3.4"
这将安装一个,并跳过另一个Django依赖项,具体取决于您使用的是什么python:
$ pip2.7 install -r requirements.txt
Ignoring django: markers 'python_version >= "3.4"' don't match your environment
Collecting django<2.0 (from -r requirements.txt (line 1))
Downloading Django-1.11.8-py2.py3-none-any.whl (6.9MB)
...
$ pip3.6 install -r requirements.txt
Ignoring django: markers 'python_version < "3.4"' don't match your environment
Collecting django>=2.0 (from -r requirements.txt (line 2))
Using cached Django-2.0-py3-none-any.whl
...