RuntimeError for SDL2 after installing pySDL2

I installed pySDL2 0.4.1:

Download the source package, enter python setup.py install . Then I tried to run a copypasted instance in the PyDev eclipse "The Pong Game: Getting Started" sample training code:

import os, sys

 try: os.environ["PYSDL2_DLL_PATH"] = "/home/me/workspace/Pong/third-party" print(os.getenv("PYSDL2_DLL_PATH")) from sdl2 import events, SDL_QUIT import sdl2.ext as sdl2ext except ImportError: import traceback traceback.print_exc() sys.exit(1) def run(): sdl2ext.init() window = sdl2ext.Window("The Pong Game", size=(800, 600)) window.show() running = True while running: events = sdl2ext.get_events() for event in events: if event.type == SDL_QUIT: running = False break window.refresh() return 0 if __name__ == "__main__": sys.exit(run()) 

I got the following error:

 Traceback (most recent call last): File "/home/me/workspace/Pong/Main.py", line 11, in <module> from sdl2 import * File "/usr/local/lib/python3.3/dist-packages/sdl2/__init__.py", line 2, in <module> from .dll import get_dll_file, _bind File "/usr/local/lib/python3.3/dist-packages/sdl2/dll.py", line 90, in <module> dll = _DLL("SDL2", ["SDL2", "SDL2-2.0"], os.getenv("PYSDL2_DLL_PATH")) File "/usr/local/lib/python3.3/dist-packages/sdl2/dll.py", line 51, in __init__ raise RuntimeError("could not find any library for %s" % libinfo) RuntimeError: could not find any library for SDL2 

I have both Pypy and libSDL installed via Synaptic, and they do not have external libraries added to PyDev - PythonPath.

What am I doing wrong?

+4
source share
2 answers

PySDL2 does not seem to find the SDL2 runtime SDL2 . They are available on the libsdl download page (except linux).

Then you should give PySDL2 where the library is located by setting PYSDL2_DLL_PATH as follows:

 # Win32 platforms set PYSDL2_DLL_PATH=C:\path\to\fancy_project\third_party # Unix/Posix-alike environments - bourne shells export PYSDL2_DLL_PATH=/path/to/fancy_project/third_party # Unix/Posix-alike environments - C shells setenv PYSDL2_DLL_PATH /path/to/fancy_project/third_party 

or in python script:

 # Win32 Platform path os.environ["PYSDL2_DLL_PATH"] = "C:\\path\\to\\fancy_project\\third_party" # Unix/Posix-alike environments path os.environ["PYSDL2_DLL_PATH"] = "/path/to/fancy_project/third_party" 

Thus, PySDL2 will always find library files (for now, of course, the path is correct)! It seems easier to me.

Happy coding with SDL2!

+1
source

Almost decided. Ubuntu has SDL1.2, and the main SDL download page leads to SDL1.2. You need to install the source package by typing:

 mkdir /opt/sdl2 cd /opt/sdl2 hg clone http://hg.libsdl.org/SDL SDL cd SDL mkdir build && cd build ../configure make sudo make install 

Then download SDL_image-2.xxtar.gz from http://www.libsdl.org/tmp/SDL_image/

and enter:

 ../configure make sudo make install 

and finally enter:

ldconfig /usr/local/lib

Now the only thing that doesn't work is that SDL_QUIT is not recognized.

0
source

Source: https://habr.com/ru/post/1496304/


All Articles