vex icon indicating copy to clipboard operation
vex copied to clipboard

Remove __PYVENV_LAUNCHER__ from the environment for child processes.

Open dmcooke opened this issue 5 years ago • 0 comments

For framework builds of Python on macOS, if PYVENV_LAUNCHER exists, it's used as the value of sys.executable, and thus is used as the base for a raft of values, including the system directories in sys.path. (See: site.py in Python source)

Additionally, python sets this in the environment for subprocesses, as a way to get around some technical issues with launching scripts that use the GUI. (See: Mac/Tools/pythonw.c in Python source)

Thus, when vex exec's /bin/python, the python launched thinks it's actually vex's python, at /opt/local/bin/python (or whatever), and so adds the non-virtualenv paths to sys.path.

dmcooke avatar Feb 20 '20 23:02 dmcooke