Skip to content

gnuchanos/pyRaylib

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Python Version Works Fine and Easy to make Binding...

🧰 Self-Contained Runtime (No External Python or Raylib Required)

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.


πŸ“ Project Structure

[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.

πŸ“¦ Linked Dependencies (ldd gcRunner)

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.0 is embedded and does not rely on system Python.


πŸ” Runtime Behavior (via strace)

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 .so files are required from external Python or Raylib setups.

🐍 Python sys.path

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`

βœ… Summary

  • πŸ”’ 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.

About

this is just c/raylib bindings

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published