Mercurial > public > mercurial-scm > hg-stable
view hg @ 53015:e2c239dae5a2
setup: drop the inaccessible `py2exehacked` code around distutils
The comment heavily implies, and experimenting confirms, that there's no
`sys.real_prefix` in a venv on Python3. I have no idea how the problems
described would manifest, but nobody has complained for the several years of
py3 releases build from a venv. The experimenting was done with 6.9.2 and the
TortoiseHg build script.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Sat, 22 Feb 2025 18:25:25 -0500 |
parents | 33e06272ff1a |
children |
line wrap: on
line source
#!/usr/bin/env python3 # # mercurial - scalable distributed SCM # # Copyright 2005-2007 Olivia Mackall <olivia@selenic.com> # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os import sys # Make `pip install --user ...` packages available to the official Windows # build. Most py2 packaging installs directly into the system python # environment, so no changes are necessary for other platforms. The Windows # py2 package uses py2exe, which lacks a `site` module. Hardcode it according # to the documentation. if getattr(sys, 'frozen', None) == 'console_exe': vi = sys.version_info appdata = os.environ.get('APPDATA') if appdata: sys.path.append( os.path.join( appdata, 'Python', 'Python%d%d' % (vi[0], vi[1]), 'site-packages', ) ) try: from hgdemandimport import tracing except ImportError: sys.stderr.write( "abort: couldn't find mercurial libraries in [%s]\n" % ' '.join(sys.path) ) sys.stderr.write("(check your install and PYTHONPATH)\n") sys.exit(-1) with tracing.log('hg script'): # enable importing on demand to reduce startup time import hgdemandimport hgdemandimport.enable() from mercurial import dispatch dispatch.run()