No graphics pipe available

I compiled Panda3D from source on a Red Hat Enterprise Linux 5 machine and was able to successfully run Panda from that machine. When trying to run the same Panda installation from a nearly identically configured machine I get the following errors:

DirectStart: Starting the game.
Known pipe types:
(all display modules loaded.)
Traceback (most recent call last):
File “Tut-Boxing-Robots.py”, line 7, in
import direct.directbase.DirectStart
File “/facvs/colonial/scratch/panda/lib/direct/directbase/DirectStart.py”, line 4, in
ShowBase.ShowBase()
File “/facvs/colonial/scratch/panda/lib/direct/showbase/ShowBase.py”, line 242, in init
self.openDefaultWindow(startDirect = False, props=props)
File “/facvs/colonial/scratch/panda/lib/direct/showbase/ShowBase.py”, line 730, in openDefaultWindow
self.openMainWindow(*args, **kw)
File “/facvs/colonial/scratch/panda/lib/direct/showbase/ShowBase.py”, line 815, in openMainWindow
self.openWindow(*args, **kw)
File “/facvs/colonial/scratch/panda/lib/direct/showbase/ShowBase.py”, line 560, in openWindow
self.makeDefaultPipe()
File “/facvs/colonial/scratch/panda/lib/direct/showbase/ShowBase.py”, line 493, in makeDefaultPipe
“No graphics pipe is available!\n”
File “/facvs/colonial/scratch/panda/lib/direct/directnotify/Notifier.py”, line 132, 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.

Here is the output of GraphicsPipeSelection.printPipeTypes() on the machine Panda was compiled from:

from pandac.PandaModules import GraphicsPipeSelection
selection = GraphicsPipeSelection.getGlobalPtr()
selection.printPipeTypes()
:display: loading display module: libpandagl.so
Known pipe types:
glxGraphicsPipe
(1 aux display modules not yet loaded.)

Here is the output from the other machine:

from pandac.PandaModules import GraphicsPipeSelection
selection = GraphicsPipeSelection.getGlobalPtr()
selection.printPipeTypes()
Known pipe types:
(all display modules loaded.)

What could differ between the two machines that would prevent it from loading the glxGraphicsPipe? What configuration settings should I be looking for?

When I compiled Panda3D I set the install directory to /disk1/scratch/panda which is a local directory. This path appears to be hardcoded into the search path for many things, including the plugin path and the config file path. To test from another machine I had to mount /disk1/scratch/panda from the other machine, but it was mounted as a different path name. Panda was not able to find my Config.prc file or the appropriate plugins and modules. I was able to get the sample files running by setting PRC_DIR to the mounted directory and I added the correct paths to the Config.prc file.

Right, actually, the only important hardcoded location is PRC_DIR, as you’ve discovered. Once Panda knows where to find its prc file, it can read the rest of the locations from the prc file itself.

And PRC_DIR can be set either at compilation time, or it can set at runtime via the PANDA_PRC_DIR environment variable.

David