This is an archive of the discontinued Mercurial Phabricator instance.

make: switch the PYTHON default to `py.exe -3` on Windows
ClosedPublic

Authored by mharbison72 on Nov 21 2020, 3:38 PM.

Details

Summary

Python3 _is_ named python.exe on Windows, but that isn't necessarily on PATH
when installing from python.org. I do happen to have a python.exe on PATH in
$LOCALAPPDATA/Microsoft/WindowsApps, but it appears to be 0 bytes (likely
because of permission issues), and doesn't run:

$ python -V
 - Cannot open

Pulkit hit the same error as I did though, so it isn't just my system:

$ make -C . local
make: Entering directory `/home/Dell/repos/hg-committed`
python setup.py  \
          build_py -c -d . \
          build_ext  -i \
          build_hgexe  -i \
          build_mo
 - Cannot openmake: *** [local] Error 1

The py.exe dispatcher lives in the Windows directory (so it is on PATH), looks
up the python.org installation, and invokes that interpreter directly. I get a
warning with py39, but if it's our issue, it was an existing one:

$ make -C .. local
make: Entering directory `/c/Users/Matt/hg'
py -3 setup.py  \
          build_py -c -d . \
          build_ext  -i \
          build_hgexe  -i \
          build_mo
C:\Users\Matt\AppData\Local\Programs\Python\Python39\lib\site-packages\setuptools\distutils_patch.py:25:
    UserWarning: Distutils was imported before Setuptools. This usage is discouraged and may
    exhibit undesirable behaviors or errors. Please use Setuptools' objects directly or at least
    import Setuptools first.
  warnings.warn(

The end result is a py3 based hg.exe that annoyingly won't run because it can't
find python39.dll. It will run tests (the ones without the python3 shbang
line anyway), because the test runner adjusts PATH to include the python running
it.

Diff Detail

Repository
rHG Mercurial
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

mharbison72 created this revision.Nov 21 2020, 3:38 PM
pulkit accepted this revision.Nov 22 2020, 9:00 AM
pulkit added a subscriber: pulkit.

Thanks, this fixed the issue.

This revision is now accepted and ready to land.Nov 22 2020, 9:00 AM