GeoMipTerrain not loading

Sounds like libpandaexpress (and presumably other libraries) weren’t compiled with the Python interfaces. Did ppremake report that it detected the presence of Python when you ran it? If it didn’t, you’ll have to fix that, and then go back and recompile everything from the beginning. Sorry about that.

David

Do you mean when I compiled ppremake at the beginning of the installation, or when I ran ppremake before compiling each of the parts?

When you run ppremake within the dtool directory, it reports the third-party software packges it has identified and configured on for the build. One of these packages is Python–it tells you whether it is configuring the build with or without Python support.

I’m guessing you ended up with the “without Python support” option.

David

Yup, you’re right. How do I get it to recognize Python as being installed?

Same way you enable any of these third-party packages. Edit your Config.pp so that PYTHON_IPATH and PYTHON_LPATH are pointing to the correct locations. On OSX, it might be as simple as putting:

#define PYTHON_FRAMEWORK Python

if you have Python installed as a framework. I haven’t looked at the instructions you’re following, but surely it covers this part?

David

I, too, have been trying to compile 1.5.2 on my MacBook Pro using the instructions on the edalytical site. The errors that have popped up have closely matched those of MattL920’s described in this thread, until the end.

I never had the missing python support problem, but I did have to disable fftw support (whatever that is) in my Config.pp file. After that, everything seemed to go OK.

However, when I tried to run a sample program, I got this message:
DirectStart: Starting the game.
:interrogatedb(warning): Classes Http_Request and Socket_TCP share the same TypeHandle value (42); check class definitions.
Warning: DirectNotify: category ‘Interval’ already exists
:display: loading display module: libpandagl.dylib
:display: Unable to load: No error.
Known pipe types:
(all display modules loaded.)
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.

After searching the forum, I found a post which mentioned the need to create a Config.prc file in /usr/local/panda/etc (there wasn’t one there already). I copied the Config.prc from the doc folder of source folder to that location and verified that this line is not commented out:
load-display pandagl

Still no joy. I found a thread with some python interpreter commands to verify the set up:

from pandac.PandaModules import *
:interrogatedb(warning): Classes Http_Request and Socket_TCP share the same TypeHandle value (42); check class definitions.
print ConfigPageManager.getGlobalPtr()
0 explicit pages:

3 implicit pages:
/usr/local/panda/etc/Config.prc
/usr/local/panda/etc/40_direct.prc
/usr/local/panda/etc/20_panda.prc

print ConfigPageManager.getGlobalPtr().getSearchPath()
/usr/local/panda/etc

That seems correct to me. Any ideas? And, while we’re at it, any idea what is causing the Http_Request/Socket_TCP warning and DirectNotify warning?

So I changed my Config.pp and it looks like dtool found Python, so that’s one problem solved. Here’s how I set that up:

#define HAVE_PYTHON 1
#define PYTHON_IPATH /Library/Frameworks/Python.framework/Versions/Current/include/python2.5/
#define PYTHON_LPATH /Library/Frameworks/Python.framework/Versions/Current/lib/
#define INSTALL_PYTHON_SOURCE 1

#define PYTHON_FRAMEWORK Python

#define JPEG_IPATH /opt/local/include
#define JPEG_LPATH /opt/local/lib

#define HAVE_PNG 1
#define PNG_IPATH /usr/X11/include/libpng
#define PNG_LPATH /usr/X11/lib/

#define TIFF_IPATH /opt/local/include
#define TIFF_LPATH /opt/local/lib

#define TAR_IPATH /opt/local/include
#define TAR_LPATH /opt/local/lib

#define HAVE_FREETYPE 1
#define FREETYPE_IPATH /opt/local/include
#define FREETYPE_LPATH /opt/local/lib

#define HAVE_THREADS 1
#define USE_MEMORY_MALLOC 1

#define FFTW_IPATH /opt/local/include
#define FFTW_LPATH /opt/local/lib
#define FFTW_LIBS drfftw

#define CG_IPATH /Library/Frameworks/Cg.framework/Headers
#define CG_LPATH /Library/Frameworks/Cg.framework

#define CG_LIBS
#define CG_FRAMEWORK Cg
#define HAVE_CG 1

#define CGGL_LIBS
#define CGGL_FRAMEWORK Cg
#define HAVE_CGGL 1

#define ZLIB_IPATH /opt/local/include/
#define ZLIB_LPATH /opt/local/lib

#define HAVE_ODE 1
#define ODE_IPATH /opt/local/include/ode
#define ODE_LPATH /opt/local/lib

Problem is, now when I try to make panda, I get a new error I hadn’t seen before:

cd ./src/express && make all
interrogate -od Opt3-OSX/libexpress.in -oc Opt3-OSX/libexpress_igate.cxx -DCPPPARSER -D__STDC__=1 -D__cplusplus -D__FLT_EVAL_METHOD__=0  -D__i386__ -D__const=const -Dvolatile -Dmutable -D__LITTLE_ENDIAN__ -D__inline__=inline -D__GNUC__ -S/usr/local/panda/include/parser-inc -I/Users/matt/src/panda3d-1.5.2/panda -I../pandabase -I/usr/local/panda/include -I/Library/Frameworks/Python.framework/Versions/Current/include/python2.5 -I/opt/local/include -I/opt/local/include   -fnames -string -refcount -assert -python-native    -module "pandaexpress" -library "libexpress" buffer.h checksumHashGenerator.h circBuffer.h config_express.h datagram.h datagramGenerator.h datagramIterator.h datagramSink.h dcast.h encrypt_string.h error_utils.h hashGeneratorBase.h hashVal.h indirectLess.h memoryInfo.h memoryUsage.h memoryUsagePointerCounts.h memoryUsagePointers.h multifile.h namable.h nodePointerToBase.h nodePointerTo.h nodeReferenceCount.h ordered_vector.h password_hash.h patchfile.h pointerTo.h pointerToArray.h pointerToArrayBase.h pointerToBase.h pointerToVoid.h profileTimer.h pStatCollectorForwardBase.h pta_uchar.h ramfile.h referenceCount.h stringDecoder.h subStream.h subStreamBuf.h textEncoder.h threadSafePointerTo.h threadSafePointerToBase.h trueClock.h typedReferenceCount.h typedef.h unicodeLatinMap.h vector_uchar.h virtualFileComposite.h virtualFile.h virtualFileList.h virtualFileMount.h virtualFileMountMultifile.h virtualFileMountSystem.h virtualFileSimple.h virtualFileSystem.h weakPointerCallback.h weakPointerTo.h weakPointerToBase.h weakPointerToVoid.h weakReferenceList.h windowsRegistry.h zStream.h zStreamBuf.h express_composite1.cxx express_composite2.cxx
dyld: Library not loaded: libpystub.dylib
  Referenced from: /usr/local/panda/bin/interrogate
  Reason: image not found
make[1]: *** [Opt3-OSX/libexpress_igate.cxx] Trace/BPT trap
make: *** [express] Error 2

MattL920:
(1) did you “make install” on dtool?
(2) did you set your library path to the place where you told the installer to put the libraries?

Zen:
Your first fftw problem, can be solved easily. Its caused by the fact that darwinports’ version of fftw is named differently.
Download this version of panda/src/mathutil/fftCompressor.cxx:
panda3d.cvs.sourceforge.net/*che … ision=1.29
After that, it will most likely compile correctly.

Your second problem is caused by the fact that in a latest version of Panda3D a new config variable was needed – the variable plugin-path. Add it and set it to the place where you install Panda’s libraries (most likely that is /usr/local/panda3d/lib).

I don’t know about your third problem, though. That might be related to the second.

I did run make install on dtool, it built without error. I think the libraries are all pointing in the right place, I can’t tell which library (if any) it’s failing to find there to cause that error

OK, I’ll try that. What does fftw do?

Yes, that fixed it, although it is actually:
plugin-path /usr/local/panda/lib (not panda3d)

The warning is still there, but it doesn’t seem to be a problem (yet).

Thanks for the help. It would be great if edalytical’s instructions were updated with the info from this thread or, better yet, if those instructions were posted in an official location on the Panda3D site somewhere and were corrected/updated as needed. As a Mac user, it has been hard to know where to turn at various points and has resulted in a lot of forum searching (that’s how I found this fortuitous thread).

Right. When I have time, I’ll put it on the manual somewhere.
I don’t know what fftw does exactly. Its a fourier transformation library.

fftw is used if you want to store lossy, compressed animations in your bam files. Other than that, you don’t need it.

David