Running a Panda3D app (development build) causes this error

DirectStart: Starting the game.
:display(warning): Unable to load: No error.
Known pipe types:
(all display modules loaded.)
Traceback (most recent call last):
  File "app.py", line 3, in <module>
    import direct.directbase.DirectStart
  File "/opt/panda3d/share/panda3d/direct/directbase/DirectStart.py", line 4, in <module>
    ShowBase.ShowBase()
  File "/opt/panda3d/share/panda3d/direct/showbase/ShowBase.py", line 242, in __init__
    self.openDefaultWindow(startDirect = False, props=props)
  File "/opt/panda3d/share/panda3d/direct/showbase/ShowBase.py", line 726, in openDefaultWindow
    self.openMainWindow(*args, **kw)
  File "/opt/panda3d/share/panda3d/direct/showbase/ShowBase.py", line 811, in openMainWindow
    self.openWindow(*args, **kw)
  File "/opt/panda3d/share/panda3d/direct/showbase/ShowBase.py", line 556, in openWindow
    self.makeDefaultPipe()
  File "/opt/panda3d/share/panda3d/direct/showbase/ShowBase.py", line 489, in makeDefaultPipe
    "No graphics pipe is available!\n"
  File "/opt/panda3d/share/panda3d/direct/directnotify/Notifier.py", line 131, in error
    raise exception(errorString)
StandardError: No graphics pipe is available!
Your Config.prc file must name at least one valid panda display
library via load-display or aux-display.

I’m pretty sure the Config.prc file is being loaded; I get the same error with PANDA_PRC_DIR and such.

okay, I had to put “plugin-path /opt/panda3d/lib/panda3d” (trailing slash is important!) to make it work

now I get

ODE INTERNAL ERROR 2: Please call ODE initialization (dInitODE() or similar) before using the library in dCollide()

Perhaps that’s an ODE version thing? I’m not very familiar with ODE myself, but I don’t see any calls to dInitODE() within our ODE layer. Perhaps earlier versions of ODE didn’t require this call while newer versions do?

David

opende.sourceforge.net/mediawiki … nctions%29

Looks like it.

For the record, I’ve just checked in a fix for this. The init function of ode now calls dInitODE().