Update venv documentation

This commit is contained in:
Valentin Niess
2022-06-11 17:29:36 +02:00
parent 14c755b2ae
commit 19e49f5526
2 changed files with 22 additions and 12 deletions

View File

@@ -123,16 +123,19 @@ installs the numpy package besides the AppImage, in a `packages` folder.
[shebang][SHEBANG], or be reinstalling the corresponding package.
## Isolating from the user space
## Isolating from the user environment
Python AppImages are not isolated from the user space. Therefore, by default
site packages located under `~/.local` are loaded instead of system ones. Note
that this is the usual Python runtime behaviour. However, it can be conflictual
in some cases.
In order to disable user site packages, one can use the `-s` option of the
Python runtime. For example, invoking the Python AppImage as {{ "`./python3.10
-s`" | id("user-isolation-example") }} prevents user packages to be loaded.
In order to disable user site packages, one can use the `-E`, `-s` or `-I`
options of the Python runtime. For example, invoking the Python AppImage as
{{ "`./python3.10 -s`" | id("user-isolation-example") }} prevents user packages
to be loaded. The `-E` option disables Python related environment variables. In
particular, it prevents packages under `PYTHONPATH` to be loaded. The `-I`
option activates both `-E` and `-s`.
## Using a virtual environement
@@ -146,9 +149,15 @@ AppImages can create a `venv` using the standard syntax, e.g. as
```
{{ end("#venv-example") }}
However, the virtual environment fails setting up `pip`, despite the latter is
packaged with the AppImage. Yet, this can be patched by calling `ensurepip` from
within the `venv`, after its creation. For example, as
Note that moving the base Python AppImage to another location breaks the virtual
environment. This can be patched by editing symbolic links under `venv/bin`, as
well as the `home` variable in `venv/pyvenv.cfg`. The latter must point to the
AppImage directory.
!!! Tip
Old Python AppImages, created before version 1.1, fail setting up `pip`
automaticaly during `venv` creation. However, this can be patched by calling
`ensurepip` from within the `venv`, after its creation. For example, as
```bash
source /path/to/new/virtual/environment/bin/activate
@@ -189,9 +198,10 @@ freely moved around.
!!! Tip
As for Python AppImages, by default the extracted runtime is [not isolated
from the user space](#isolating-from-the-user-space). This behaviour can be
changed by editing the `AppDir/AppRun` wrapper script, and by adding the
`-s` option at the very bottom, where Python is invoked.
from the user environment](#isolating-from-the-user-environment). This
behaviour can be changed by editing the `AppDir/AppRun` wrapper script, and
by adding the `-s`, `-E` or `-I` option at the very bottom, where Python is
invoked.
{{ begin(".capsule") }}