目前Django项目支持1.4,1.7和1.8.在我的setup.py我想反映这些版本作为受支持.
install_requires=['Django>=1.4.2,<1.8.99,!=1.5,!=1.6']
Run Code Online (Sandbox Code Playgroud)
但是,这仍然允许1.5.x和1.6.x版本.如何排除完整范围?
Setuptools列出了以下有效要求作为示例:
PickyThing<1.6,>1.9,!=1.9.6,<2.0a0,==2.4c1
Run Code Online (Sandbox Code Playgroud)
但是这不适用于pip(至少应该匹配1.4.x/1.5.x):
找不到PickyThing的匹配分布!= 1.9.6,<1.6,<2.0a0,== 2.4c1,> 1.9
以示例更新
例如; 我只想包括当前支持的Django版本.这将是1.4.x,1.7.x和1.8.x. 所以我会写;
#setup.py
install_requires=['Django>=1.4.2,<1.4.99,>=1.7,<1.8.99']
Run Code Online (Sandbox Code Playgroud)
但是,如果我pip install -e .在这个项目上运行,它会失败;
Collecting Django<1.4.99,<1.8.99,>=1.4.2,>=1.7 (from ...)
Could not find a version that satisfies the requirement Django<1.4.99,<1.8.99,>=1.4.2,>=1.7 (from django-two-factor-auth==1.2.0) (from versions: 1.1.3, 1.1.4, 1.2, 1.2.1, 1.2.2, 1.2.3, 1.2.4, 1.2.5, 1.2.6, 1.2.7, 1.3, 1.3.1, 1.3.2, 1.3.3, 1.3.4, 1.3.5, 1.3.6, 1.3.7, 1.4, 1.4.1, 1.4.2, 1.4.3, 1.4.4, 1.4.5, 1.4.6, 1.4.7, 1.4.8, 1.4.9, 1.4.10, 1.4.11, 1.4.12, 1.4.13, 1.4.14, 1.4.15, 1.4.16, …Run Code Online (Sandbox Code Playgroud)