@@ -661,6 +661,17 @@ This is how :data:`sys.path` is populated on Windows:
661661 the environment, and no registry entries can be found, a default path with
662662 relative entries is used (e.g. ``.\Lib;.\plat-win ``, etc).
663663
664+ If a ``pyvenv.cfg `` file is found alongside the main executable or in the
665+ directory one level above the executable, the following variations apply:
666+
667+ * If ``home `` is an absolute path and :envvar: `PYTHONHOME ` is not set, this
668+ path is used instead of the path to the main executable when deducing the
669+ home location.
670+
671+ * If ``applocal `` is set to true, the ``home `` property or the main executable
672+ is always used as the home path, and all environment variables or registry
673+ values affecting the path are ignored. The landmark file is not checked.
674+
664675The end result of all this is:
665676
666677* When running :file: `python.exe `, or any other .exe in the main Python
@@ -672,13 +683,17 @@ The end result of all this is:
672683 etc), the "Python Home" will not be deduced, so the core path from the
673684 registry is used. Other "application paths" in the registry are always read.
674685
675- * If Python can't find its home and there is no registry (eg, frozen .exe, some
676- very strange installation setup) you get a path with some default, but
686+ * If Python can't find its home and there are no registry value ( frozen .exe,
687+ some very strange installation setup) you get a path with some default, but
677688 relative, paths.
678689
679690For those who want to bundle Python into their application or distribution, the
680691following advice will prevent conflicts with other installations:
681692
693+ * Include a ``pyvenv.cfg `` file alongside your executable containing
694+ ``applocal = true ``. This will ensure that your own directory will be used to
695+ resolve paths even if you have included the standard library in a ZIP file.
696+
682697* If you are loading :file: `python3.dll ` or :file: `python35.dll ` in your own
683698 executable, explicitly call :c:func: `Py_SetPath ` or (at least)
684699 :c:func: `Py_SetProgramName ` before :c:func: `Py_Initialize `.
@@ -688,7 +703,7 @@ following advice will prevent conflicts with other installations:
688703
689704* If you cannot use the previous suggestions (for example, you are a
690705 distribution that allows people to run :file: `python.exe ` directly), ensure
691- that the landmark file (:file: `Lib\\ os.py `) exists in your bundled library .
706+ that the landmark file (:file: `Lib\\ os.py `) exists in your install directory .
692707 (Note that it will not be detected inside a ZIP file.)
693708
694709These will ensure that the files in a system-wide installation will not take
0 commit comments