@@ -52,16 +52,16 @@ benefits:
5252* The simpler the process of re-creating the environment, the more reliable
5353 software can be achieved, and the faster the process can be.
5454
55- Making it simpler to copy a virtual environment from one host to another mitigates
56- these categories of problems. Additionally, the development tools to create a
57- virtual environment and install its dependencies aren't needed on the host that
58- intends to run the program.
55+ Making it simpler to copy a virtual environment from one host to another
56+ mitigates these categories of problems. Additionally, the development tools to
57+ create a virtual environment and install its dependencies aren't needed on the
58+ host that intends to run the program.
5959
6060When the virtual environment doesn't require modifications to be usable, it
6161also allows more advanced deployment mechanisms, e.g. remote mounting and
62- caching of artifacts. While this PEP on its own isn't sufficient to enable that, it
63- allows tools like `bazel ` or `venvstacks ` to more easily prepare constrained
64- environments that allow for such use cases.
62+ caching of artifacts. While this PEP on its own isn't sufficient to enable
63+ that, it allows tools like `` bazel `` or `` venvstacks `` to more easily prepare
64+ constrained environments that allow for such use cases.
6565
6666Rationale
6767=========
@@ -73,11 +73,13 @@ customizing how it's computed. Without the ability to specify where the
7373supporting Python runtime files are, the interpreter can't finish startup,
7474so other hook points (e.g. ``site `` initialization) never trigger.
7575
76- Tools that currently look to enable virtual environment portability across machines do
77- so either by relying on undocumented interpreter behaviour (`bazel `, omitting the `home `
78- key entirely to trigger an implementation dependent fallback to resolving via a symlinked
79- interpreter binary on non-Windows systems) or by requiring a post-installation script to
80- be executed after the environment is placed in its target location (`venvstacks `).
76+ Tools that currently look to enable virtual environment portability across
77+ machines do so either by relying on undocumented interpreter behaviour
78+ (``bazel ``, omitting the ``home `` key entirely to trigger an implementation
79+ dependent fallback to resolving via a symlinked interpreter binary on
80+ non-Windows systems) or by requiring a post-installation script to be executed
81+ after the environment is placed in its target location (``venvstacks ``).
82+
8183Specification
8284=============
8385
@@ -138,18 +140,20 @@ Backwards Compatibility
138140=======================
139141
140142
141- Tools that work around the absolute `home ` key limitation the way `bazel ` and ` venvstacks `
142- currently do (omitting the `home ` key, or editing it after moving the environment) will be
143- unaffected.
143+ Tools that work around the absolute `` home `` key limitation the way `` bazel ``
144+ and `` venvstacks `` currently do (omitting the `` home `` key, or editing it after
145+ moving the environment) will be unaffected.
144146
145- While the PEP author and sponsor aren't aware of any projects that work around the limitation
146- by carefully controlling the current working directory used to launch the deployed Python
147- environments on target systems, any such projects would be unaffected if they already ensured
148- the working directory was set to the folder containing `pyvenv.cfg ` (which seems like a plausible
149- choice, since that is typically the root directory of the virtual environment). In the even more
150- unlikely case where that assumption doesn't hold, tools generating relative virtual environment
151- paths will typically be aware of the underlying base runtime Python version, and hence able to
152- update the emitted relative path accordingly.
147+ While the PEP author and sponsor aren't aware of any projects that work around
148+ the limitation by carefully controlling the current working directory used to
149+ launch the deployed Python environments on target systems, any such projects
150+ would be unaffected if they already ensured the working directory was set to
151+ the folder containing ``pyvenv.cfg `` (which seems like a plausible choice,
152+ since that is typically the root directory of the virtual environment). In the
153+ even more unlikely case where that assumption doesn't hold, tools generating
154+ relative virtual environment paths will typically be aware of the underlying
155+ base runtime Python version, and hence able to update the emitted relative path
156+ accordingly.
153157
154158
155159How to Teach This
@@ -207,8 +211,8 @@ dynamically compute it by checking if the current executable (which is
207211typically the venv's ``bin/python3 `` symlink) is a symlink and, if so, use
208212where that points as ``PYTHONHOME ``.
209213
210- While currently used as a workaround by some tools, *standardising * this behavior
211- is undesirable for a couple reasons:
214+ While currently used as a workaround by some tools, *standardising * this
215+ behavior is undesirable for a couple reasons:
212216
2132171. It presents platform-specific issues, namely with Windows. Windows does
214218 support symlinks, but not by default, and it can require special
0 commit comments