##// END OF EJS Templates
setup: add extra logic to try and recommend a new pip on bad Python...
Augie Fackler -
r33589:02501742 stable
parent child Browse files
Show More
@@ -24,9 +24,6 b" if 'HGALLOWPYTHON3':"
24 ])
24 ])
25
25
26 import sys, platform
26 import sys, platform
27 if sys.version_info < (2, 7, 0, 'final'):
28 raise SystemExit('Mercurial requires Python 2.7 or later.')
29
30 if sys.version_info[0] >= 3:
27 if sys.version_info[0] >= 3:
31 printf = eval('print')
28 printf = eval('print')
32 libdir_escape = 'unicode_escape'
29 libdir_escape = 'unicode_escape'
@@ -37,6 +34,33 b' else:'
37 end = kwargs.get('end', '\n')
34 end = kwargs.get('end', '\n')
38 f.write(b' '.join(args) + end)
35 f.write(b' '.join(args) + end)
39
36
37 # Attempt to guide users to a modern pip - this means that 2.6 users
38 # should have a chance of getting a 4.2 release, and when we ratchet
39 # the version requirement forward again hopefully everyone will get
40 # something that works for them.
41 if sys.version_info < (2, 7, 0, 'final'):
42 pip_message = ('This may be due to an out of date pip. '
43 'Make sure you have pip >= 9.0.1.')
44 try:
45 import pip
46 pip_version = tuple([int(x) for x in pip.__version__.split('.')[:3]])
47 if pip_version < (9, 0, 1) :
48 pip_message = (
49 'Your pip version is out of date, please install '
50 'pip >= 9.0.1. pip {} detected.'.format(pip.__version__))
51 else:
52 # pip is new enough - it must be something else
53 pip_message = ''
54 except Exception:
55 pass
56 error = """
57 Mercurial does not support Python older than 2.7.
58 Python {py} detected.
59 {pip}
60 """.format(py=sys.version_info, pip=pip_message)
61 printf(error, file=sys.stderr)
62 sys.exit(1)
63
40 # Solaris Python packaging brain damage
64 # Solaris Python packaging brain damage
41 try:
65 try:
42 import hashlib
66 import hashlib
General Comments 0
You need to be logged in to leave comments. Login now