Fixed #28878 -- Added python_requires in setup.py and a warning for older pips that don't recognize it.

This commit is contained in:
Zac-HD 2017-12-04 10:24:14 +11:00 committed by Tim Graham
parent 622ead6aaf
commit 32ade4d73b
2 changed files with 31 additions and 0 deletions

View File

@ -845,6 +845,7 @@ answer newbie questions, and generally made Django that much better:
ymasuda@ethercube.com ymasuda@ethercube.com
Yoong Kang Lim <yoongkang.lim@gmail.com> Yoong Kang Lim <yoongkang.lim@gmail.com>
Yusuke Miyazaki <miyazaki.dev@gmail.com> Yusuke Miyazaki <miyazaki.dev@gmail.com>
Zac Hatfield-Dodds <zac.hatfield.dodds@gmail.com>
Zachary Voase <zacharyvoase@gmail.com> Zachary Voase <zacharyvoase@gmail.com>
Zach Liu <zachliu@gmail.com> Zach Liu <zachliu@gmail.com>
Zach Thompson <zthompson47@gmail.com> Zach Thompson <zthompson47@gmail.com>

View File

@ -4,6 +4,35 @@ from distutils.sysconfig import get_python_lib
from setuptools import find_packages, setup from setuptools import find_packages, setup
CURRENT_PYTHON = sys.version_info[:2]
REQUIRED_PYTHON = (3, 5)
# 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 # 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 # cause issues where files that were deleted from a more recent Django are
# still present in site-packages. See #18115. # still present in site-packages. See #18115.
@ -35,6 +64,7 @@ version = __import__('django').get_version()
setup( setup(
name='Django', name='Django',
version=version, version=version,
python_requires='>={}.{}'.format(*REQUIRED_PYTHON),
url='https://www.djangoproject.com/', url='https://www.djangoproject.com/',
author='Django Software Foundation', author='Django Software Foundation',
author_email='foundation@djangoproject.com', author_email='foundation@djangoproject.com',