Error running Panda3D Programs

Hi everyone.

Whenever I run a Panda3D program, I get this error:


DirectStart: Starting the game.
Traceback (most recent call last):
  File "GreetingCard.py", line 1, in ?
    import direct.directbase.DirectStart
  File "/usr/share/panda3d/direct/src/directbase/DirectStart.py", line 3, in ?
    from direct.showbase import ShowBase
  File "/usr/share/panda3d/direct/src/showbase/ShowBase.py", line 6, in ?
    from pandac.PandaModules import *
  File "/usr/share/panda3d/pandac/PandaModules.py", line 23, in ?
    exec marshal.loads(zlib.decompress(f.read(1042)))
ValueError: bad marshal data

I am running Red Hat Linux.
I’m using Python 2.4, but ppython is 2.3.4
I installed the 1.0.5 version of Panda ( since it was the only one with a RH9 rpm )

It sounds like your PandaModules.pyz file has gotten corrupted somehow. Either that or there is some Python version incompatibilty. Are you sure you’re running ppython and not just python?

David

Yes, I am running ppython.
I will try to reinstall Panda3D. I’ll tell you what the results are.

Hmm… I tried reinstalling P3D but it still gives me the same error…

Strange. It might be worth trying 1.1.0, which doesn’t use a PandaModules.pyz file. Try the fedora RPM.

David

I have tried 1.1, but there are a lot of dependencies that cannot be found, like openssl ( or something like that ) and when I try to install the deps they ask for other deps and it’s pretty much an endless loop.

Ok, I decided to built P3D from source ( this time 1.1.0. ) I did the INSTALL-MK instructions, added built/bin to my PATH and built/lib to my LD_LIBRARY_PATH. I don’t get those annoying errors anymore, however, when I run a program, the window opens and shows only a black screen. I get this message ( in the console screen: )


DirectStart: Starting the game.
Warning: DirectNotify: category 'Interval' already exists
Known pipe types:
  glxGraphicsPipe
(all display modules loaded.)
:display:glxdisplay(error): Using GL renderer Mesa X11; it is probably a software renderer.
:display:glxdisplay(error): To allow use of this display add FM_software to your frame buffer mode.

OK, this means you have not properly installed the appropriate driver in your system to run hardware-accelerated 3-D graphics on your video card. It’s probably worth looking around the net for instructions to do this properly for your particular video card and your flavor of Linux.

If you’re not able to get this working, though, another option is to run Panda3D in software mode. This will be slow, of course, but it’s easy. To do this, change the keyword “hardware” to “software” on the framebuffer-mode line in your Config.prc file, as described in this thread.

David