This project is designed to run completely standalone, without requiring any external Python installation or Raylib setup on the host system. All core components β including the Python interpreter β are bundled directly within the project directory. The result is a portable, zip-and-run system.
[gcRunner] βββΊ [main.py]
β
ββββΊ [gcLib_GnuLinux.so]
ββββΊ [gcLib/init.py]
gcRunner: Native binary that runs the engine.gcLib_GnuLinux.so: Shared object with C/C++ engine code.Python/lib/libpython3.13.so.1.0: Bundled Python interpreter.- All logic is handled inside the project β no system Python required.
The executable links against a small set of shared libraries. Below is an overview of what it uses and where each dependency comes from:
| Library | Status | Description |
|---|---|---|
libpython3.13.so.1.0 |
β Bundled in-project | Located at ./Python/lib/ |
libm.so.6 |
β System | Standard math library |
libGL.so.1 |
β System | OpenGL runtime |
libc.so.6 |
β System | C standard library |
libGLdispatch.so.0 |
β System | OpenGL dispatch layer |
libGLX.so.0 |
β System | OpenGL/X11 bridge |
libX11.so.6 |
β System | X11 windowing system |
libxcb.so.1 |
β System | X11 backend communication |
libXau.so.6 |
β System | X11 authorization |
libXdmcp.so.6 |
β System | X11 display manager protocol |
π‘
libpython3.13.so.1.0is embedded and does not rely on system Python.
When running `./gcRunner`, dynamic loading behaves as expected:
openat(... "/Python/lib/libpython3.13.so.1.0", O_RDONLY) = β
FOUND
openat(... "/usr/lib/libm.so.6", O_RDONLY) = β
FOUND
openat(... "/usr/lib/libGL.so.1", O_RDONLY) = β
FOUND
openat(... "/usr/lib/libc.so.6", O_RDONLY) = β
FOUND
openat(... "/usr/lib/libGLdispatch.so.0", O_RDONLY) = β
FOUND
openat(... "/usr/lib/libGLX.so.0", O_RDONLY) = β
FOUND
openat(... "/usr/lib/libX11.so.6", O_RDONLY) = β
FOUND
openat(... "/usr/lib/libxcb.so.1", O_RDONLY) = β
FOUND
openat(... "/usr/lib/libXau.so.6", O_RDONLY) = β
FOUND
openat(... "/usr/lib/libXdmcp.so.6", O_RDONLY) = β
FOUND
- Python is loaded from the bundled location.
- System libraries resolve properly.
- No
.sofiles are required from external Python or Raylib setups.
The Python interpreter uses the following `sys.path` directories in this project:
- `/SSD/Github/GnuChanGE/src/Engine`
- `/SSD/Github/GnuChanGE/src/Engine/Python/lib/python313.zip`
- `/SSD/Github/GnuChanGE/src/Engine/Python/lib/python3.13`
- `/SSD/Github/GnuChanGE/src/Engine/Python/lib/python3.13/lib-dynload`
- `/home/archkubi/.local/lib/python3.13/site-packages`
- `/SSD/Github/GnuChanGE/src/Engine/Python/lib/python3.13/site-packages`
- π Self-contained: No need for system Python or Raylib.
- π¦ Embedded interpreter: Python 3.13 is bundled.
- π« No external scripts required: All logic is internal.
- π Portable: Zip and run anywhere β no installation needed.