Evan Mason wrote:
> Hi all,
>
> Just updated basemap from 0.9.4 to 0.9.8 on Mandriva Linux 2008. I
> also installed basemap-data-fullres-0.9.7. I've noticed there's a
> couple of recent posts about problems (on Macs) with 0.9.8, the
> solution being to install setuptools until 0.9.9 comes along; the
> problem I have is similar to the posts but not the same, so I'd like
> to check here before proceeding with setuptools.
>
> I installed the included geos-2.2.3, then basemap-0.9.8, then
> basemap-data-fullres-0.9.7 . However when I now import basemap I get:
>
> In [1]: from matplotlib.toolkits.basemap import Basemap
> ---------------------------------------------------------------------------
> <type 'exceptions.ImportError'> Traceback (most recent call
> last)
>
> /home/emason/python/tools/<ipython console> in <module>()
>
> /usr/lib/python2.5/site-packages/matplotlib/toolkits/basemap/__init__.py
> in <module>()
> ----> 1 from basemap import __doc__, __version__
> 2 from basemap import *
>
> /usr/lib/python2.5/site-packages/matplotlib/toolkits/basemap/basemap.py
> in <module>()
> 29 from matplotlib.cbook import is_scalar, dedent
> 30 from shapelib import ShapeFile
> ---> 31 import _geos, pupynere
> 32
> 33 # basemap data files now installed in
> lib/matplotlib/toolkits/basemap/data
>
> <type 'exceptions.ImportError'>: libgeos_c.so.1: cannot open shared
> object file: No such file or directory
>
> Yet the file, in fact a link, libgeos_c.so.1, does exist at the
> location (/usr/local/lib) where it is supposed to be:
>
> [root@msasa lib]# ll
> total 44230
> -rw-r--r-- 1 root root 28107924 2007年12月28日 16:31 libgeos.a
> -rw-r--r-- 1 root root 581806 2007年12月28日 16:31 libgeos_c.a
> -rwxr-xr-x 1 root root 830 2007年12月28日 16:31 libgeos_c.la*
> lrwxrwxrwx 1 root root 18 2007年12月28日 16:31 libgeos_c.so ->
> libgeos_c.so.1.1.1*
> lrwxrwxrwx 1 root root 18 2007年12月28日 16:31 libgeos_c.so.1 ->
> libgeos_c.so.1.1.1*
> -rwxr-xr-x 1 root root 452162 2007年12月28日 16:31 libgeos_c.so.1.1.1*
> -rwxr-xr-x 1 root root 790 2007年12月28日 16:31 libgeos.la*
> lrwxrwxrwx 1 root root 16 2007年12月28日 16:31 libgeos.so ->
> libgeos.so.2.2.3*
> lrwxrwxrwx 1 root root 16 2007年12月28日 16:31 libgeos.so.2 ->
> libgeos.so.2.2.3*
> -rwxr-xr-x 1 root root 13443604 2007年12月28日 16:31 libgeos.so.2.2.3*
>
> I'd appreciate any help with this.
>
> Thanks, Evan
Evan: I think this is a LD_LIBRARY_PATH problem. There are two
possible workarounds:
1) set the LD_LIBRARY_PATH environment variable to include
/usr/local/lib, i.e.
export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"
2) edit setup.py and make the following change
currents_nbp:(basemap_svn)$ svn diff
Index: setup.py
===================================================================
--- setup.py (revision 4791)
+++ setup.py (working copy)
@@ -90,7 +90,11 @@
extensions.append(Extension("matplotlib.toolkits.basemap._geod",deps+['src/_geod.c'],include_dirs
= ['src'],))
# for some reason, pickling won't work if this extension is installed
# as "matplotlib.toolkits.basemap._geos"
-extensions.append(Extension("_geos",['src/_geos.c'],library_dirs=geos_library_dirs,include_dirs=geos_include_dirs,libraries=['geos_c','geos']))
+extensions.append(Extension("_geos",['src/_geos.c'],
+ library_dirs=geos_library_dirs,
+ runtime_library_dirs=geos_library_dirs,
+ include_dirs=geos_include_dirs,
+ libraries=['geos_c','geos']))
then rebuild. As Eric Firing pointed out to me, adding
runtime_library_dirs negates the need to set LD_LIBRARY_PATH manually.
This is already done in svn, and so 0.9.9 will not require manually
setting LD_LIBRARY_PATH.
HTH,
-Jeff
--
Jeffrey S. Whitaker Phone : (303)497-6313
Meteorologist FAX : (303)497-6449
NOAA/OAR/PSD R/PSD1 Email : Jef...@no...
325 Broadway Office : Skaggs Research Cntr 1D-124
Boulder, CO, USA 80303-3328 Web : http://tinyurl.com/5telg