Ticket #30421 (closed defect: fixed)
py27-matplotlib-basemap @1.0.1_0, python import error: obsolete library reference
| Reported by: | brislawn@… | Owned by: | ram@… |
|---|---|---|---|
| Priority: | Normal | Milestone: | |
| Component: | ports | Version: | 2.0.0 |
| Keywords: | Cc: | ||
| Port: | py27-matplotlib-basemap |
Description
I installed basemap back in June but recently upgraded a number of outdated ports. After doing so, I kept getting an ipython error message when trying to import Basemap:
In [1]: from mpl_toolkits.basemap import Basemap
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
/Users/brislawn/Documents/Programs/VisualExploration/sandbox/<ipython console> in <module>()
/opt/macports/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/mpl_toolkits/basemap/__init__.py in <module>()
43 import numpy.ma as ma
44 from shapelib import ShapeFile
---> 45 import _geoslib, netcdftime
46
47 # basemap data files now installed in lib/matplotlib/toolkits/basemap/data
ImportError: dlopen(/opt/macports/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/_geoslib.so, 2): Library not loaded: /opt/macports/lib/libgeos-3.2.2.dylib
Referenced from: /opt/macports/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/_geoslib.so
Reason: image not found
The problem appears to be that libgeos is now at ver. 3.3.0 but for some reason this _geoslib.so file in Python.framework/ is still looking for 3.2.2, so evidently that version number is hardwired into _geoslib.so. I was able to fix the problem by uninstalling basemap (which removed _geoslib.so) and reinstalling it, but the normal "port upgrade outdated" procedure wasn't able to correct this problem. Maybe someone should look at how _geoslib.so is being generated during the build.
Thanks,
-Chris
Attachments
Change History
comment:1 Changed 22 months ago by jmr@…
- Owner changed from macports-tickets@… to ram@…
- Port changed from py27-matplotlib-basemap @1.0.1_0 to py27-matplotlib-basemap
comment:3 Changed 22 months ago by ram@…
- Status changed from assigned to closed
- Resolution set to fixed
revision bumped in r81267 to force linking against correct geos library
comment:5 follow-up: ↓ 6 Changed 22 months ago by brislawn@…
- Status changed from closed to reopened
- Resolution fixed deleted
Thanks for such prompt action. Sorry for not cc'ing the maintainer but I couldn't figure out what email address to cc. I did a "port upgrade outdated" today to build the new revision, py27-matplotlib-basemap-1.0.1_1, and after building and installing it I got the following error in ipython:
In [1]: from mpl_toolkits.basemap import Basemap---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
/Users/brislawn/Documents/Programs/VisualExploration/sandbox/<ipython console> in <module>()
/opt/macports/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/mpl_toolkits/basemap/__init__.py in <module>()
38 from matplotlib.lines import Line2D
39 from matplotlib.transforms import Bbox
---> 40 import pyproj, sys, os, math, dbflib
41 from proj import Proj
42 import numpy as np
ImportError: No module named dbflib
The complete build file is attached; a quick check with a text editor failed to find the string "dbflib" anywhere in the output of the build.
Thanks,
-Chris
comment:6 in reply to: ↑ 5 ; follow-up: ↓ 10 Changed 22 months ago by jmr@…
- Cc brislawn@… removed
Replying to brislawn@…:
Sorry for not cc'ing the maintainer but I couldn't figure out what email address to cc.
port info py27-matplotlib-basemap, for future reference. This is mentioned in the ticket guidelines.
comment:7 Changed 22 months ago by ram@…
I've seen this dbflib issue before, a rebuild usually fixes it. Can you try uninstalling and rebuilding and see of that fixes it?
comment:8 Changed 22 months ago by ram@…
Just done a quick search on this issue and I may have found what's causing this. If it's correct a rebuild will fix it, but this is a hack and not the correct solution. I'm about to leave for a long weekend vacation but I'll look into fixing this properly on Tuesday.
comment:9 Changed 22 months ago by brislawn@…
Uninstalling and reinstalling py27-matplotlib-basemap did the trick (i.e., python can now import Basemap). Close this one out.
Thanks, you guys are the greatest!
Sincerely,
-Chris Brislawn
comment:10 in reply to: ↑ 6 Changed 22 months ago by brislawn@…
Replying to jmr@…:
Replying to brislawn@…:
Sorry for not cc'ing the maintainer but I couldn't figure out what email address to cc.
port info py27-matplotlib-basemap, for future reference. This is mentioned in the ticket guidelines.
Now I see it. It's under the bullet "Assign to:", which is for users with commit access and which steered me back up to the "Cc:" bullet. Maybe the directions "For tickets on ports, enter the email address..." belongs up under the "Cc:" bullet?
Thanks again for your help and patience; I'm new to this TracTickets system.
Sincerely,
-Chris
comment:11 Changed 22 months ago by ram@…
- Status changed from reopened to closed
- Resolution set to fixed
This dbflib issue should be correctly fixed in r81785


Please remember to cc the maintainer.