Bootstrap the per-user Python venv from the wrapper
The Project Manager GUI does not set up O3DE's Python venv itself; it only
errors ("Missing python venv file .../pyvenv.cfg") when it's absent, which
cascades into "Failed to get engine info" / "Failed to initialize". Nothing
was running get_python.sh on launch.
The wrapper now runs python/get_python.sh when python.sh reports the venv is
missing/stale. get_python.sh downloads Python, creates the venv under the
writable ~/.o3de, and installs the o3de CLI from the prebuilt sdist. It is
idempotent and self-heals a half-built venv (venv creation uses --clear).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -127,10 +127,13 @@ These were confirmed by inspecting the v26.05 package (`opt/O3DE/26.05/…`):
|
||||
engine compiles project code at runtime. Those live in the SDK. Users therefore
|
||||
pull the SDK runtime (larger than Platform) on install — Flatpak does this
|
||||
automatically from Flathub.
|
||||
- **Python is per-user, not baked in.** On first launch O3DE downloads its Python
|
||||
runtime and builds a venv under `~/.o3de` (writable), pip-installing its deps
|
||||
there. The build does **not** bundle Python — the venv is keyed to the user's
|
||||
home path, so it can only be created at runtime.
|
||||
- **Python is per-user, not baked in.** O3DE needs a Python venv under `~/.o3de`
|
||||
(writable), keyed to the engine path, so it can only be created at runtime — the
|
||||
build can't bundle it. The Project Manager GUI does **not** create it itself, so
|
||||
the wrapper (`o3de-wrapper.sh`) runs `python/get_python.sh` on launch when the
|
||||
venv is missing or stale. The **first launch downloads Python and can take
|
||||
several minutes with no window on screen** — that's expected; subsequent launches
|
||||
are instant. (cmake, which `get_python.sh` needs, comes from the Sdk runtime.)
|
||||
- **The o3de CLI install (read-only `/app`).** On first launch O3DE installs its
|
||||
own `o3de` CLI from `scripts/o3de` into the per-user `~/.o3de` venv. By default
|
||||
`python/get_python.sh` does an *editable* install (`pip install -e`), which
|
||||
|
||||
Reference in New Issue
Block a user