Pygplates dylib error

I’m trying to get pygplates running and have tried both the python 2.7 and python 3.8 versions (within conda environments running the correct python version respectively) but when I attempt to import pygplates in either a script or just from a python prompt, I get the following error:

ImportError: dlopen(pygplates_rev28_python27_MacOS64/, 2): Symbol not found: _objc_opt_class
Referenced from: pygplates_rev28_python27_MacOS64/QtCore (which was built for Mac OS X 10.15)
Expected in: /usr/lib/libobjc.A.dylib
in pygplates_rev28_python27_MacOS64/QtCore

I’m running MacOS 10.14.6, and it seems like maybe the error is indicating that it’s expecting 10.15, but I thought the documentation indicated anything greater than 10.9 should work? Any help would be appreciated (and this is my first time trying to use pygplates, so I’m not 100% sure this isn’t something screwed up on my end).

Hi amforte,

Thanks for reporting that. It looks like, even though we build pyGPlates for 10.9+, the dependency libraries (in this case Qt) are built for 10.15 (ie, my version of macOS). I guess we haven’t noticed it internally since we are probably all using macOS 10.15 (Catalina).

I’m currently using Macports, which builds the dependencies from source, so I’ll look into rebuilding Macports with macosx_deployment_target configured for 10.9 and send you another pyGPlates for testing. Apparently not all ports honour that setting (or have problems with it), and it’s not documented for that reason, so I’ll see how that goes.

Worse comes to worse we’ll set up a machine (or VM) with macOS 10.9 and build with that. Then it should run on 10.9 and above.


For others reading this, please note that this has been resolved by the new macOS builds (although there are still some warnings related to libQt5Core when used in Anaconda, that we’ll look into resolving for the next release, but they don’t appear to be showstoppers)…