No graphics pipe is available... (from Python)

Hi, I hope somebody will be able to give me an advice:

I’m running Suse9.1 Linux, Python 2.3. I built Panda using makepanda.py script. I copied the built folder + all other files mentioned in INSTALL-MK to /usr/local/panda.

If I start /usr/local/panda/bin/pview it works:
Known pipe types:
glxGraphicsPipe
(all display modules loaded.)

  • and of course, pview windows appears.

But If I open /usr/local/panda/bin/ppython and then import direct.directbase.DirectStart I get:
Known pipe types:
(all display modules loaded.)
Traceback (most recent call last):
File “”, line 1, in ?
File “/home/qwix/bin/panda3d-1.0.0/built/direct/…/…/direct/src/directbase/DirectStart.py”, line 4, in ?
ShowBase.ShowBase()
File “/home/qwix/bin/panda3d-1.0.0/built/direct/…/…/direct/src/showbase/ShowBase.py”, line 190, in init
self.openDefaultWindow()
File “/home/qwix/bin/panda3d-1.0.0/built/direct/…/…/direct/src/showbase/ShowBase.py”, line 459, in openDefaultWindow
self.openMainWindow()
File “/home/qwix/bin/panda3d-1.0.0/built/direct/…/…/direct/src/showbase/ShowBase.py”, line 528, in openMainWindow
self.openWindow()
File “/home/qwix/bin/panda3d-1.0.0/built/direct/…/…/direct/src/showbase/ShowBase.py”, line 363, in openWindow
self.makeDefaultPipe()
File “/home/qwix/bin/panda3d-1.0.0/built/direct/…/…/direct/src/showbase/ShowBase.py”, line 310, in makeDefaultPipe
self.notify.error(
File “/home/qwix/bin/panda3d-1.0.0/built/direct/…/…/direct/src/directnotify/Notifier.py”, line 111, 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.

My Config.prc is in /usr/local/panda/etc/Config.prc. pview is using this file, but which file is ppython using??? What env.variable do I have to set? I even tried to put Config.prc right into /etc, but without success.

Thx.

This isn’t too surprising, I recently rewrote the code to locate “Config.prc” and it hasn’t been heavily tested, and I never tested it on SuSE.

I’m going to do some quick testing today to duplicate your procedure. If it works for me, then I’ll ask you more questions. Back in a few hours.

  • Josh

Hm. Tested it (but not on the same version of linux). Could not reproduce the bug.

Does SuSE linux have a file /proc/self/maps?

To help me debug, try adding a print-statement to “configPageManager.cxx”. On line 457, print out the value of “dtool”.

  • Josh

I have /proc/self/maps on my system, but no panda directory is listed there. I don’t know it is OK or not…

and the configPageManager.cxx - I don’t know what you’re asking me to do. This is how my configPageManager.cxx looks (lines 456-8 ):
// Start at the dtool directory.
Filename dtool = ExecutionEnvironment::get_dtool_name();
Filename dir = dtool.get_dirname();

Please write me what I need to add. And do I have to recompile panda after that? Thx.

I was thinking about adding something like this:

// Start at the dtool directory.
Filename dtool = ExecutionEnvironment::get_dtool_name();
cerr << "dtool=" << dtool << "\n";
Filename dir = dtool.get_dirname();

Then, when you run it, it will print out “dtool=something”, and you can post it here.

But, just so you know, I’m having a SuSE 9.1 machine installed here at the ETC to diagnose the problem. If you like, you can just wait until I fix it.

  • Josh

I experience the same thing with debian sarge… but pview doesn’t work either…


> pview
dtool=/usr/lib/libdtool.so
Known pipe types:
(all display modules loaded.)
No graphics pipe is available!
Your Config.prc file must name at least one valid panda display
library via load-display or aux-display.

Is there something to do to load the prc file ?

aloa mortals ! guess i found it !
ok here it is :

  • on my beloved debian, only the /usr/lib/etc/Config.prc is read by pview (why? dont know)
  • i changed notify-level to spam
  • found a line indicating some problem with XF86VidModeQueryVersion …
  • found on the net that i needed to fetch the last xlibXXX-dev modules
  • rebuild many times to get … Victory !

now i will enjoy panda3d i guess :slight_smile:

oups …
forgot to say

  • in makepanda.py i inserted -lXxf86vm after -lGL -lGLU to get XF86VidModeQueryVersion in the binaries …

but i guess you’d noticed already huh?

I’m having the exact same problem on Linspire. Running pview works fine, but attempting to run Airblade results in the same error posted here.

Any ETA on a fix?

Thanks!

-Brian

Could you post the exact text of the error message that Airblade is printing out? Copy and paste the whole thing from the window.

Sorry for the delay on this:

enumerate is already present in builtin
:express(warning): Attempt to register type NetDatagram more than once!
:express(warning): Attempt to register type ClientDevice more than once!
:express(warning): Attempt to register type ClientAnalogDevice more than once!
:express(warning): Attempt to register type VrpnAnalogDevice more than once!
:express(warning): Attempt to register type ClientButtonDevice more than once!
:express(warning): Attempt to register type VrpnButtonDevice more than once!
:express(warning): Attempt to register type ClientBase more than once!
:express(warning): Attempt to register type VrpnClient more than once!
:express(warning): Attempt to register type ClientDialDevice more than once!
:express(warning): Attempt to register type VrpnDialDevice more than once!
:express(warning): Attempt to register type ClientTrackerDevice more than once!
:express(warning): Attempt to register type VrpnTrackerDevice more than once!
:express(warning): Attempt to register type TypedWritable more than once!
:express(warning): Attempt to register type BoundedObject more than once!
:express(warning): Attempt to register type PandaNode more than once!
:express(warning): Attempt to register type PGItem more than once!
:express(warning): Attempt to register type PGButton more than once!
:express(warning): Attempt to register type PGSliderButton more than once!
:express(warning): Attempt to register type CullTraverser more than once!
:express(warning): Attempt to register type PGCullTraverser more than once!
:express(warning): Attempt to register type PGEntry more than once!
:express(warning): Attempt to register type TypedWritableReferenceCount more than once!
:express(warning): Attempt to register type PGMouseWatcherParameter more than once!
:express(warning): Attempt to register type MouseWatcherGroup more than once!
:express(warning): Attempt to register type PGMouseWatcherGroup more than once!
:express(warning): Attempt to register type MouseWatcherRegion more than once!
:express(warning): Attempt to register type PGMouseWatcherBackground more than once!
:express(warning): Attempt to register type PGMouseWatcherRegion more than once!
:express(warning): Attempt to register type PGTop more than once!
:express(warning): Attempt to register type PGWaitBar more than once!
:express(warning): Attempt to register type PGSliderBar more than once!
:express(warning): Attempt to register type AudioManager more than once!
:express(warning): Attempt to register type AudioSound more than once!
:express(warning): Attempt to register type FactoryParam more than once!
:express(warning): Attempt to register type BamReaderParam more than once!
:express(warning): Attempt to register type CachedTypedWritableReferenceCount more than once!
:express(warning): Attempt to register type Configurable more than once!
:express(warning): Attempt to register type WritableConfigurable more than once!
:express(warning): Attempt to register type WritableParam more than once!
:express(warning): Attempt to register type remove more than once!
:express(warning): Attempt to register type Lerp more than once!
:express(warning): Attempt to register type AutonomousLerp more than once!
:express(warning): Attempt to register type LerpFunctor more than once!
:express(warning): Attempt to register type SimpleLerpFunctor more than once!
:express(warning): Attempt to register type SimpleLerpFunctor more than once!
:express(warning): Attempt to register type LVecBase2f more than once!
:express(warning): Attempt to register type LPoint2f more than once!
:express(warning): Attempt to register type SimpleLerpFunctor more than once!
:express(warning): Attempt to register type LVecBase3f more than once!
:express(warning): Attempt to register type LPoint3f more than once!
:express(warning): Attempt to register type SimpleLerpFunctor more than once!
:express(warning): Attempt to register type LVecBase4f more than once!
:express(warning): Attempt to register type LPoint4f more than once!
:express(warning): Attempt to register type SimpleLerpFunctor more than once!
:express(warning): Attempt to register type SimpleLerpFunctor more than once!
:express(warning): Attempt to register type SimpleLerpFunctor more than once!
:express(warning): Attempt to register type SimpleLerpFunctor more than once!
:express(warning): Attempt to register type LVector2f more than once!
:express(warning): Attempt to register type SimpleLerpFunctor more than once!
:express(warning): Attempt to register type LVector3f more than once!
:express(warning): Attempt to register type SimpleLerpFunctor more than once!
:express(warning): Attempt to register type LVector4f more than once!
:express(warning): Attempt to register type SimpleLerpFunctor more than once!
:express(warning): Attempt to register type SimpleQueryLerpFunctor more than once!
:express(warning): Attempt to register type SimpleQueryLerpFunctor more than once!
:express(warning): Attempt to register type SimpleQueryLerpFunctor more than once!
:express(warning): Attempt to register type SimpleQueryLerpFunctor more than once!
:express(warning): Attempt to register type SimpleQueryLerpFunctor more than once!
:express(warning): Attempt to register type SimpleQueryLerpFunctor more than once!
:express(warning): Attempt to register type SimpleQueryLerpFunctor more than once!
:express(warning): Attempt to register type SimpleQueryLerpFunctor more than once!
:express(warning): Attempt to register type SimpleQueryLerpFunctor more than once!
:express(warning): Attempt to register type SimpleQueryLerpFunctor more than once!
:express(warning): Attempt to register type SimpleQueryLerpFunctor more than once!
:express(warning): Attempt to register type MultiLerpFunctor more than once!
:express(warning): Attempt to register type LerpBlendType more than once!
:express(warning): Attempt to register type EaseInBlendType more than once!
:express(warning): Attempt to register type EaseOutBlendType more than once!
:express(warning): Attempt to register type EaseInOutBlendType more than once!
:express(warning): Attempt to register type NoBlendType more than once!
:express(warning): Attempt to register type DataNode more than once!
:express(warning): Attempt to register type MouseInterfaceNode more than once!
:express(warning): Attempt to register type DriveInterface more than once!
:express(warning): Attempt to register type ButtonThrower more than once!
:express(warning): Attempt to register type MouseWatcher more than once!
:express(warning): Attempt to register type Trackball more than once!
:express(warning): Attempt to register type Transform2SG more than once!
:express(warning): Attempt to register type TextFont more than once!
:express(warning): Attempt to register type StaticTextFont more than once!
:express(warning): Attempt to register type TextProperties more than once!
:express(warning): Attempt to register type TextNode more than once!
:express(warning): Attempt to register type DynamicTextFont more than once!
:express(warning): Attempt to register type ImageBuffer more than once!
:express(warning): Attempt to register type Texture more than once!
:express(warning): Attempt to register type DynamicTextPage more than once!
:express(warning): Attempt to register type dDrawable more than once!
:express(warning): Attempt to register type Geom more than once!
:express(warning): Attempt to register type GeomTristrip more than once!
:express(warning): Attempt to register type GeomTextGlyph more than once!
:express(warning): Attempt to register type PNMFileType more than once!
:express(warning): Attempt to register type PNMFileTypeSGI more than once!
:express(warning): Attempt to register type PNMFileTypeAlias more than once!
:express(warning): Attempt to register type PNMFileTypeTGA more than once!
:express(warning): Attempt to register type PNMFileTypeIMG more than once!
:express(warning): Attempt to register type PNMFileTypeSoftImage more than once!
:express(warning): Attempt to register type PNMFileTypeBMP more than once!
:express(warning): Attempt to register type PNMFileTypeJPG more than once!
:express(warning): Attempt to register type PNMFileTypePNG more than once!
:express(warning): Attempt to register type PNMFileTypeTIFF more than once!
:express(warning): Attempt to register type ParametricCurve more than once!
:express(warning): Attempt to register type PiecewiseCurve more than once!
:express(warning): Attempt to register type NurbsCurveInterface more than once!
:express(warning): Attempt to register type ClassicNurbsCurve more than once!
:express(warning): Attempt to register type NurbsCurve more than once!
:express(warning): Attempt to register type CubicCurveseg more than once!
:express(warning): Attempt to register type CurveFitter more than once!
:express(warning): Attempt to register type HermiteCurve more than once!
:express(warning): Attempt to register type ParametricCurveDrawer more than once!
:express(warning): Attempt to register type NurbsCurveDrawer more than once!
:express(warning): Attempt to register type RopeNode more than once!
:express(warning): Attempt to register type SheetNode more than once!
:express(warning): Attempt to register type BoundingVolume more than once!
:express(warning): Attempt to register type GeometricBoundingVolume more than once!
:express(warning): Attempt to register type FiniteBoundingVolume more than once!
:express(warning): Attempt to register type BoundingHexahedron more than once!
:express(warning): Attempt to register type BoundingSphere more than once!
:express(warning): Attempt to register type OmniBoundingVolume more than once!
:express(warning): Attempt to register type BoundingLine more than once!
:express(warning): Attempt to register type EventStoreValueBase more than once!
:express(warning): Attempt to register type LMatrix3f more than once!
:express(warning): Attempt to register type LMatrix4f more than once!
:express(warning): Attempt to register type LVecBase2d more than once!
:express(warning): Attempt to register type LVecBase3d more than once!
:express(warning): Attempt to register type LVecBase4d more than once!
:express(warning): Attempt to register type LVector2d more than once!
:express(warning): Attempt to register type LVector3d more than once!
:express(warning): Attempt to register type LVector4d more than once!
:express(warning): Attempt to register type LPoint2d more than once!
:express(warning): Attempt to register type LPoint3d more than once!
:express(warning): Attempt to register type LPoint4d more than once!
:express(warning): Attempt to register type LMatrix3d more than once!
:express(warning): Attempt to register type LMatrix4d more than once!
:express(warning): Attempt to register type LQuaternionf more than once!
:express(warning): Attempt to register type LRotationf more than once!
:express(warning): Attempt to register type LOrientationf more than once!
:express(warning): Attempt to register type LQuaterniond more than once!
:express(warning): Attempt to register type LRotationd more than once!
:express(warning): Attempt to register type LOrientationd more than once!
:express(warning): Attempt to register type GraphicsStateGuardianBase more than once!
:express(warning): Attempt to register type GeomLine more than once!
:express(warning): Attempt to register type GeomLinestrip more than once!
:express(warning): Attempt to register type GeomPoint more than once!
:express(warning): Attempt to register type GeomSprite more than once!
:express(warning): Attempt to register type GeomPolygon more than once!
:express(warning): Attempt to register type GeomQuad more than once!
:express(warning): Attempt to register type GeomSphere more than once!
:express(warning): Attempt to register type GeomTri more than once!
:express(warning): Attempt to register type GeomTrifan more than once!
:express(warning): Attempt to register type Material more than once!
:express(warning): Attempt to register type Lens more than once!
:express(warning): Attempt to register type OrthographicLens more than once!
:express(warning): Attempt to register type MatrixLens more than once!
:express(warning): Attempt to register type PerspectiveLens more than once!
:express(warning): Attempt to register type PixelBuffer more than once!
:express(warning): Attempt to register type TextureStage more than once!
:express(warning): Attempt to register type TexCoordName more than once!
:express(warning): Attempt to register type ButtonEventList more than once!
:express(warning): Attempt to register type Event more than once!
:express(warning): Attempt to register type EventHandler more than once!
:express(warning): Attempt to register type GraphicsStateGuardian more than once!
:express(warning): Attempt to register type SavedFrameBuffer more than once!
:express(warning): Attempt to register type GraphicsPipe more than once!
:express(warning): Attempt to register type GraphicsOutput more than once!
:express(warning): Attempt to register type GraphicsWindow more than once!
:express(warning): Attempt to register type GraphicsBuffer more than once!
:express(warning): Attempt to register type ParasiteBuffer more than once!
:express(warning): Attempt to register type SavedContext more than once!
:express(warning): Attempt to register type TextureContext more than once!
:express(warning): Attempt to register type DataNodeTransmit more than once!
:express(warning): Attempt to register type AnalogNode more than once!
:express(warning): Attempt to register type ButtonNode more than once!
:express(warning): Attempt to register type DialNode more than once!
:express(warning): Attempt to register type MouseAndKeyboard more than once!
:express(warning): Attempt to register type TrackerNode more than once!
:express(warning): Attempt to register type VirtualMouse more than once!
:express(warning): Attempt to register type CollisionEntry more than once!
:express(warning): Attempt to register type CollisionHandler more than once!
:express(warning): Attempt to register type CollisionHandlerEvent more than once!
:express(warning): Attempt to register type CollisionHandlerPhysical more than once!
:express(warning): Attempt to register type CollisionHandlerFloor more than once!
:express(warning): Attempt to register type CollisionHandlerGravity more than once!
:express(warning): Attempt to register type CollisionHandlerPusher more than once!
:express(warning): Attempt to register type CollisionHandlerQueue more than once!
:express(warning): Attempt to register type CollisionSolid more than once!
:express(warning): Attempt to register type CollisionSphere more than once!
:express(warning): Attempt to register type CollisionInvSphere more than once!
:express(warning): Attempt to register type CollisionRay more than once!
:express(warning): Attempt to register type CollisionLine more than once!
:express(warning): Attempt to register type CollisionNode more than once!
:express(warning): Attempt to register type CollisionPlane more than once!
:express(warning): Attempt to register type CollisionPolygon more than once!
:express(warning): Attempt to register type CollisionSegment more than once!
:express(warning): Attempt to register type CollisionTube more than once!
:express(warning): Attempt to register type CollisionRecorder more than once!
:express(warning): Attempt to register type CollisionVisualizer more than once!
:express(warning): Attempt to register type PartBundleNode more than once!
:express(warning): Attempt to register type Character more than once!
:express(warning): Attempt to register type PartGroup more than once!
:express(warning): Attempt to register type MovingPartBase more than once!
:express(warning): Attempt to register type MovingPart more than once!
:express(warning): Attempt to register type AnimGroup more than once!
:express(warning): Attempt to register type AnimChannelBase more than once!
:express(warning): Attempt to register type AnimChannelMatrix more than once!
:express(warning): Attempt to register type AnimChannelMatrixFixed more than once!
:express(warning): Attempt to register type MovingPartMatrix more than once!
:express(warning): Attempt to register type CharacterJoint more than once!
:express(warning): Attempt to register type PartBundle more than once!
:express(warning): Attempt to register type CharacterJointBundle more than once!
:express(warning): Attempt to register type MovingPart more than once!
:express(warning): Attempt to register type AnimChannelScalar more than once!
:express(warning): Attempt to register type AnimChannelScalarFixed more than once!
:express(warning): Attempt to register type MovingPartScalar more than once!
:express(warning): Attempt to register type CharacterSlider more than once!
:express(warning): Attempt to register type ComputedVertices more than once!
:express(warning): Attempt to register type DynamicVertices more than once!
:express(warning): Attempt to register type AnimBundle more than once!
:express(warning): Attempt to register type AnimBundleNode more than once!
:express(warning): Attempt to register type AnimChannelMatrixXfmTable more than once!
:express(warning): Attempt to register type AnimChannelMatrixDynamic more than once!
:express(warning): Attempt to register type AnimChannelScalarTable more than once!
:express(warning): Attempt to register type AnimChannelScalarDynamic more than once!
:express(warning): Attempt to register type AnimControl more than once!
:express(warning): Attempt to register type FrameRateMeter more than once!
:express(warning): Attempt to register type RenderAttrib more than once!
:express(warning): Attempt to register type AlphaTestAttrib more than once!
:express(warning): Attempt to register type Light more than once!
:express(warning): Attempt to register type LightNode more than once!
:express(warning): Attempt to register type AmbientLight more than once!
:express(warning): Attempt to register type AuxSceneData more than once!
:express(warning): Attempt to register type RenderEffect more than once!
:express(warning): Attempt to register type BillboardEffect more than once!
:express(warning): Attempt to register type LensNode more than once!
:express(warning): Attempt to register type Camera more than once!
:express(warning): Attempt to register type ClipPlaneAttrib more than once!
:express(warning): Attempt to register type ColorAttrib more than once!
:express(warning): Attempt to register type ColorBlendAttrib more than once!
:express(warning): Attempt to register type ColorScaleAttrib more than once!
:express(warning): Attempt to register type ColorWriteAttrib more than once!
:express(warning): Attempt to register type CompassEffect more than once!
:express(warning): Attempt to register type CullFaceAttrib more than once!
:express(warning): Attempt to register type CullBin more than once!
:express(warning): Attempt to register type CullBinAttrib more than once!
:express(warning): Attempt to register type CullBinBackToFront more than once!
:express(warning): Attempt to register type CullBinFixed more than once!
:express(warning): Attempt to register type CullBinFrontToBack more than once!
:express(warning): Attempt to register type CullBinUnsorted more than once!
:express(warning): Attempt to register type CullableObject more than once!
:express(warning): Attempt to register type DecalEffect more than once!
:express(warning): Attempt to register type DepthOffsetAttrib more than once!
:express(warning): Attempt to register type DepthTestAttrib more than once!
:express(warning): Attempt to register type DepthWriteAttrib more than once!
:express(warning): Attempt to register type DirectionalLight more than once!
:express(warning): Attempt to register type LODNode more than once!
:express(warning): Attempt to register type FadeLODNode more than once!
:express(warning): Attempt to register type FadeLODNodeData more than once!
:express(warning): Attempt to register type Fog more than once!
:express(warning): Attempt to register type FogAttrib more than once!
:express(warning): Attempt to register type GeomNode more than once!
:express(warning): Attempt to register type LightAttrib more than once!
:express(warning): Attempt to register type LightLensNode more than once!
:express(warning): Attempt to register type LoaderFileType more than once!
:express(warning): Attempt to register type LoaderFileTypeBam more than once!
:express(warning): Attempt to register type MaterialAttrib more than once!
:express(warning): Attempt to register type ModelNode more than once!
:express(warning): Attempt to register type ModelRoot more than once!
:express(warning): Attempt to register type NodePath more than once!
:express(warning): Attempt to register type NodePathComponent more than once!
:express(warning): Attempt to register type PlaneNode more than once!
:express(warning): Attempt to register type PointLight more than once!
:express(warning): Attempt to register type PolylightNode more than once!
:express(warning): Attempt to register type PolylightEffect more than once!
:express(warning): Attempt to register type PortalNode more than once!
:express(warning): Attempt to register type PortalClipper more than once!
:express(warning): Attempt to register type RenderEffects more than once!
:express(warning): Attempt to register type RenderModeAttrib more than once!
:express(warning): Attempt to register type RenderState more than once!
:express(warning): Attempt to register type RescaleNormalAttrib more than once!
:express(warning): Attempt to register type SelectiveChildNode more than once!
:express(warning): Attempt to register type SequenceNode more than once!
:express(warning): Attempt to register type ShowBoundsEffect more than once!
:express(warning): Attempt to register type Spotlight more than once!
:express(warning): Attempt to register type SwitchNode more than once!
:express(warning): Attempt to register type TexMatrixAttrib more than once!
:express(warning): Attempt to register type TexProjectorEffect more than once!
:express(warning): Attempt to register type TextureApplyAttrib more than once!
:express(warning): Attempt to register type TextureAttrib more than once!
:express(warning): Attempt to register type TexGenAttrib more than once!
:express(warning): Attempt to register type TransformState more than once!
:express(warning): Attempt to register type TransparencyAttrib more than once!
:express(warning): Attempt to register type PosLerpFunctor more than once!
:express(warning): Attempt to register type HprLerpFunctor more than once!
:express(warning): Attempt to register type ScaleLerpFunctor more than once!
:express(warning): Attempt to register type PosHprLerpFunctor more than once!
:express(warning): Attempt to register type HprScaleLerpFunctor more than once!
:express(warning): Attempt to register type PosHprScaleLerpFunctor more than once!
:express(warning): Attempt to register type ColorLerpFunctor more than once!
:express(warning): Attempt to register type ColorScaleLerpFunctor more than once!
:express(warning): Attempt to register type RecorderBase more than once!
:express(warning): Attempt to register type MouseRecorder more than once!
:express(warning): Attempt to register type RecorderController more than once!
:express(warning): Attempt to register type RecorderFrame more than once!
:express(warning): Attempt to register type RecorderHeader more than once!
:express(warning): Attempt to register type RecorderTable more than once!
:express(warning): Attempt to register type SocketStreamRecorder more than once!
:prc(warning): changing default value for ConfigVariable audio-cache-limit from ‘15’ to ‘128’.
DirectStart: Starting the game.
Warning: DirectNotify: category ‘Interval’ already exists
:express(warning): Attempt to register type CgShader more than once!
:express(warning): Attempt to register type CgShaderAttrib more than once!
:express(warning): Attempt to register type CgShaderContext more than once!
:express(warning): Attempt to register type CylindricalLens more than once!
:express(warning): Attempt to register type FisheyeLens more than once!
:express(warning): Attempt to register type PSphereLens more than once!
:express(warning): Attempt to register type ProjectionScreen more than once!
Known pipe types:
(all display modules loaded.)
Traceback (most recent call last):
File “Airblade.py”, line 20, in ?
import direct.directbase.DirectStart
File “/usr/lib/python2.3/ihooks.py”, line 399, in import_module
m = self.load_tail(q, tail)
File “/usr/lib/python2.3/ihooks.py”, line 450, in load_tail
m = self.import_it(head, mname, m)
File “/usr/lib/python2.3/ihooks.py”, line 489, in import_it
m = self.loader.load_module(fqname, stuff)
File “”, line 22, in load_module
File “/usr/lib/python2.3/ihooks.py”, line 270, in load_module
m = self.hooks.load_source(name, filename, file)
File “/usr/lib/python2.3/ihooks.py”, line 168, in load_source
return imp.load_source(name, filename, file)
File “/usr/share/panda3d/direct/src/directbase/DirectStart.py”, line 4, in ?
ShowBase.ShowBase()
File “/usr/share/panda3d/direct/src/showbase/ShowBase.py”, line 190, in init
self.openDefaultWindow()
File “/usr/share/panda3d/direct/src/showbase/ShowBase.py”, line 459, in openDefaultWindow
self.openMainWindow()
File “/usr/share/panda3d/direct/src/showbase/ShowBase.py”, line 528, in openMainWindow
self.openWindow()
File “/usr/share/panda3d/direct/src/showbase/ShowBase.py”, line 363, in openWindow
self.makeDefaultPipe()
File “/usr/share/panda3d/direct/src/showbase/ShowBase.py”, line 310, in makeDefaultPipe
self.notify.error(
File “/source/panda3d/panda3d-1.0.5/built/direct/…/…/direct/src/directnotify/Notifier.py”, line 111, 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.

Something is very wrong with your panda installation. It’s spewing out errors.

Since I’m not shipping a distribution for linspire, I’m going to assume you compiled from source. Chances are, the problem is with how you installed it, not how you compiled it. Panda is fairly picky about how it is installed.

There are two valid choices. Here’s the easy one. Move the “built” directory to /usr/local/panda3d. Then, copy direct, samples, and models into /usr/local/panda3d. Then, create a “panda.pth” file in your python directory containing the paths /usr/local/panda3d/lib and /usr/local/panda3d. Finally, put /usr/local/panda3d/lib into your library path - usually, that involves editing /etc/ld.so.conf or something like that.

If you care, I’ll tell you the other way of installing it. But that was the easy one.

[/quote]

Hi,

Thanks for the followup. yes, I compiled from source, and compilation seemed to go without a hitch.

You’re probably right about my instllation. I did it to conform to Debian policies. /usr/local isn’t an option.

Currently, I have my header files in /usr/include, data in /usr/share, binaries in /usr/bin, etc… All standard locations.

Is there a way to pull this off?

Thanks!

-Brian

There is, yes, but I’m not going to guide you through that process until we’re sure that panda works.

As for “/usr/local”, that was just an arbitrary place. You don’t have to put the built directory anywhere in particular. Heck, you can leave it right where it is, in your home directory or whatever.

You do have to do these steps, though:

  • copy “direct”, “models”, and “samples” into the built directory.
  • add the built/lib directory to ld.so.conf or LD_LIBRARY_PATH
  • add the built/bin directory to your path.

That’s all temporary, you can remove that stuff after we’re done testing, but you’ll need to do it for now.

Once you’ve done that, try running some of the panda programs. Start by typing:

cd built/samples/Feature-Tutorials–Actors
ppython Tut-Actors.py

and see what happens.

Same error as I received with my home-made debian package install. I followed your instructions exactly (as well as linking the direct and pandac folders to /usr/lib/python2.3/site-packages as the directories aren’t in python’s module path)

I copied my Config.prc globally to /etc as well, but still a no go.

-Brian

I copied my Config.prc globally to /etc as well, but still a no go.

OK. First, undo this step - this will prevent it from working.

linking the direct and pandac folders to /usr/lib/python2.3/site-packages

Undo this too. I don’t think this will cause problems, but it’s not necessary.

Finally, run ppython (not python, ppython) as described and show me the output.

I thought the ppython was a typo :slight_smile:. I ran it with ppython and it seems to work pretty well.

Thanks for all the help. I think I might be able to take it from here.

-Brian

ppython is really just a small script that sets the environment variable PYTHONPATH and then runs python. Another way to set the python path is to put a “panda.pth” file into the python directory.

So anyhow, if you’d like to see how I “install” panda normally, the simplest thing to do is to look at the file “maketarball.py”. This script generates a source tarball, and in the process, it inserts an RPM spec file into the tarball. An RPM spec file contains, among other things, all the commands necessary to install the software. By studying those commands, and maybe duplicating them, you should be able to install panda cleanly yourself.

  • Josh