I haven't tried to debug PySFML applications, just the binding itself, and the users will normally never need to do that.
I never use debuggers for Python, except for really weird cases.
Currently, I'm using SFML compiled in release mode, but I guess you can use any version you want. The only upside I can see for using a debug version is if you plan to debug the library itself, and in some cases it
might be possible that some low-level bugs occur only when some compiler optimizations are activated. I think this irrelevant for Python users.
I can't see which options are provided to cython by default when it's invoked by the setup.py script, but in practice I find that it provides enough information when an error occurs.
Looking at cython's command-line options, it looks like you can only disable doc strings, or add line directives to see where the error comes from the source file. Both are probably useless for most users since I don't use doc strings.
When I'll make a stable release, I'll try the various options to see if can significantly reduce the module size, though.
In the end, if you just want to debug your application, you can probably just use whatever Python debugger you prefer. I remember that I used Winpdb for debugging multi-threaded programs. There's also the standard module
pdb. Personally, I find that print statements are enough most of the time. It's not like in C where you often just get “Segmentation fault” as an error message. ;-)