##// END OF EJS Templates
hg: add user-site to `sys.path` on Windows to allow pip-installed extensions...
hg: add user-site to `sys.path` on Windows to allow pip-installed extensions This has been in the TortoiseHg builds for several cycles now on Windows, and even longer on macOS. It allows an extension to be configured with `ext =` syntax, instead of requiring the full path to be specified. It's confusing for a user to be hit with messages about not being able to load extensions, based solely on which `hg.exe` is being run. This only applies to py2exe binaries, since wrapper.exe already sees into the user site area. There are no frozen binaries on other platforms (that I'm aware of), and an equivalent change will need to be made to `dispatch.py` in order to work with PyOxidizer, since it bypasses this module completely. (It also has the ability to use the `site` module, so it will look completely different.) Differential Revision: https://phab.mercurial-scm.org/D9531

File last commit:

r46672:7740d510 default
r46672:7740d510 default
Show More
hg
59 lines | 1.7 KiB | text/plain | TextLexer
Gregory Szorc
global: use python3 in shebangs...
r46434 #!/usr/bin/env python3
mpm@selenic.com
Add back links from file revisions to changeset revisions...
r0 #
Matt Mackall
Update copyright notice
r1698 # mercurial - scalable distributed SCM
mpm@selenic.com
Add back links from file revisions to changeset revisions...
r0 #
Thomas Arendsen Hein
Updated copyright notices and add "and others" to "hg version"
r4635 # Copyright 2005-2007 Matt Mackall <mpm@selenic.com>
mpm@selenic.com
Add back links from file revisions to changeset revisions...
r0 #
Martin Geisler
updated license to be explicit about GPL version 2
r8225 # This software may be used and distributed according to the terms of the
Matt Mackall
Update license to GPLv2+
r10263 # GNU General Public License version 2 or any later version.
Augie Fackler
hg: update top-level script to use modern import conventions
r33897 from __future__ import absolute_import
mpm@selenic.com
Add back links from file revisions to changeset revisions...
r0
Dan Villiom Podlaski Christiansen
setup/hg: always load Mercurial from where it was installed....
r12661 import os
import sys
libdir = '@LIBDIR@'
if libdir != '@' 'LIBDIR' '@':
if not os.path.isabs(libdir):
Gregory Szorc
black: blacken scripts...
r44058 libdir = os.path.join(
os.path.dirname(os.path.realpath(__file__)), libdir
)
Dan Villiom Podlaski Christiansen
setup/hg: always load Mercurial from where it was installed....
r12661 libdir = os.path.abspath(libdir)
sys.path.insert(0, libdir)
Matt Harbison
hg: add user-site to `sys.path` on Windows to allow pip-installed extensions...
r46672 # 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
sys.path.append(
os.path.join(
os.environ['APPDATA'],
'Python',
'Python%d%d' % (vi[0], vi[1]),
'site-packages',
)
)
Augie Fackler
hg: wrap the highest layer in the `hg` script possible in trace event...
r39628 from hgdemandimport import tracing
Gregory Szorc
black: blacken scripts...
r44058
Augie Fackler
hg: wrap the highest layer in the `hg` script possible in trace event...
r39628 with tracing.log('hg script'):
# enable importing on demand to reduce startup time
try:
if sys.version_info[0] < 3 or sys.version_info >= (3, 6):
Gregory Szorc
black: blacken scripts...
r44058 import hgdemandimport
hgdemandimport.enable()
Augie Fackler
hg: wrap the highest layer in the `hg` script possible in trace event...
r39628 except ImportError:
Gregory Szorc
black: blacken scripts...
r44058 sys.stderr.write(
"abort: couldn't find mercurial libraries in [%s]\n"
% ' '.join(sys.path)
)
Augie Fackler
hg: wrap the highest layer in the `hg` script possible in trace event...
r39628 sys.stderr.write("(check your install and PYTHONPATH)\n")
sys.exit(-1)
Thomas Arendsen Hein
Enable demandimport only in scripts, not in importable modules (issue605)...
r5197
Augie Fackler
hg: wrap the highest layer in the `hg` script possible in trace event...
r39628 from mercurial import dispatch
Gregory Szorc
black: blacken scripts...
r44058
Augie Fackler
hg: wrap the highest layer in the `hg` script possible in trace event...
r39628 dispatch.run()