raylib-py
raylib-py copied to clipboard
'_rl' is not defined
I'm trying to run one of the examples:
import os
os.environ["RAYLIB_BIN_PATH"] = "libraylib.dll"
from raylibpy import *
init_window(800, 450, "raylib [core] example - basic window")
set_target_fps(60)
while not window_should_close():
begin_drawing()
clear_background(RAYWHITE)
draw_text("Congrats! You created your first window!", 190, 200, 20, LIGHTGRAY)
end_drawing()
close_window()
and im getting the error:
Traceback (most recent call last):
File "rlibtest.py", line 4, in <module>
from raylibpy import *
File "C:\Users\Mateus\AppData\Local\Programs\Python\Python37\lib\site-packages\raylibpy\__init__.py", line 2695, in <module>
_rl.InitWindow.argtypes = [Int, Int, CharPtr]
NameError: name '_rl' is not defined
I know this response is a bit late, but to try to at least close the issue... The import is failing to find the library. I ran your code (on a Mac) and got the same traceback (just, with a different path). I then tried removing the first two lines and running your code from a directory that contains a copy of the RayLibPy module (so I knew the import would succeed), and everything worked correctly.
You just need to figure out how to link everything together, but I don't know much about Windows, so don't know what to suggest.
I have just tested running without the first two lines, and it seems to find the file but it now runs into this issue:
Traceback (most recent call last):
File "raylibtest.py", line 1, in <module>
from raylibpy import *
File "C:\Users\Mateus\AppData\Local\Programs\Python\Python37\lib\site-packages\raylibpy\__init__.py", line 72, in <module>
_rl = CDLL(os.path.join(RAYLIB_BIN_PATH, _lib_filename[_platform]))
File "C:\Users\Mateus\AppData\Local\Programs\Python\Python37\lib\ctypes\__init__.py", line 356, in __init__
self._handle = _dlopen(self._name, mode)
OSError: [WinError 193] %1 is not a valid Win32 application
I have even tried modifying the module files to print the path its trying to open, and it is opening the corrent file. I have also tried using the raylib dll found here, but that doesn't seem to work as it is different from the shared one.
os.environ["RAYLIB_BIN_PATH"]
must be directory path. E.g. "__main__"
(same directory as py file), "C:/project/"
.
You can run without the first two lines if replace \Lib\site-packages\raylibpy\libraylib_shared.dll with worked one.
I've tested Python 3.8.0 (x64) + libraylib_shared.dll from raylib-2.0.0-Win64-mingw.zip.
The solution of @infval is working fine for me.
On Ubuntu :
I downloaded the raylib 2.0.0 (raylib-2.0.0-Linux-amd64), extracted it in my project. I was trying to use it form venv but without success... There is the 2 first lines of my python file :
import os
os.environ["RAYLIB_BIN_PATH"] = "raylib-2.0.0-Linux-amd64/lib/"
On Windows :
I downloaded the raylib 2.0.0 (raylib-2.0.0-Win64-mingw), extracted it in my project. There is the 2 first lines of my python file :
import os
os.environ["RAYLIB_BIN_PATH"] = "raylib-2.0.0-Win64-mingw/lib/"