diff options
| author | Zac-HD <zac.hatfield.dodds@gmail.com> | 2017-12-04 10:24:14 +1100 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2017-12-22 18:30:50 -0500 |
| commit | 45d89856fcf103e8f109e76eea548149bd7e0ced (patch) | |
| tree | 6201094f5df1faadc8ac13fa57a2dd191a1d1d9a | |
| parent | b40a1d774d6e7dc0a3663a69c3a8a9b8793d31ff (diff) | |
[2.0.x] Fixed #28878 -- Added python_requires in setup.py and a warning for older pips that don't recognize it.
Backport of 32ade4d73b50aed77efdb9dd7371c17f89061afc from master
| -rw-r--r-- | AUTHORS | 1 | ||||
| -rw-r--r-- | setup.py | 30 |
2 files changed, 31 insertions, 0 deletions
@@ -841,6 +841,7 @@ answer newbie questions, and generally made Django that much better: ymasuda@ethercube.com Yoong Kang Lim <yoongkang.lim@gmail.com> Yusuke Miyazaki <miyazaki.dev@gmail.com> + Zac Hatfield-Dodds <zac.hatfield.dodds@gmail.com> Zachary Voase <zacharyvoase@gmail.com> Zach Liu <zachliu@gmail.com> Zach Thompson <zthompson47@gmail.com> @@ -4,6 +4,35 @@ from distutils.sysconfig import get_python_lib from setuptools import find_packages, setup +CURRENT_PYTHON = sys.version_info[:2] +REQUIRED_PYTHON = (3, 4) + +# This check and everything above must remain compatible with Python 2.7. +if CURRENT_PYTHON < REQUIRED_PYTHON: + sys.stderr.write(""" +========================== +Unsupported Python version +========================== + +This version of Django requires Python {}.{}, but you're trying to +install it on Python {}.{}. + +This may be because you are using a version of pip that doesn't +understand the python_requires classifier. Make sure you +have pip >= 9.0 and setuptools >= 24.2, then try again: + + $ python -m pip install --upgrade pip setuptools + $ python -m pip install django + +This will install the latest version of Django which works on your +version of Python. If you can't upgrade your pip (or Python), request +an older version of Django: + + $ python -m pip install "django<2" +""".format(*(REQUIRED_PYTHON + CURRENT_PYTHON))) + sys.exit(1) + + # Warn if we are installing over top of an existing installation. This can # cause issues where files that were deleted from a more recent Django are # still present in site-packages. See #18115. @@ -35,6 +64,7 @@ version = __import__('django').get_version() setup( name='Django', version=version, + python_requires='>={}.{}'.format(*REQUIRED_PYTHON), url='https://www.djangoproject.com/', author='Django Software Foundation', author_email='foundation@djangoproject.com', |
