Revision: 4672
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4672&view=rev
Author: jswhit
Date: 2007-12-08 05:58:50 -0800 (Sat, 08 Dec 2007)
Log Message:
-----------
try to automatically detect GEOS lib location (instead of forcing user
to set GEOS_DIR env var). On Leopard, env vars don't get passed by
sudo.
Modified Paths:
--------------
trunk/toolkits/basemap/setup.py
Modified: trunk/toolkits/basemap/setup.py
===================================================================
--- trunk/toolkits/basemap/setup.py 2007-12-08 02:35:27 UTC (rev 4671)
+++ trunk/toolkits/basemap/setup.py 2007-12-08 13:58:50 UTC (rev 4672)
@@ -35,35 +35,44 @@
"""check geos C-API header file (geos_c.h)"""
try:
f = open(os.path.join(GEOS_dir,'include/geos_c.h'))
- except:
- raise SystemExit("""
-Cannot find geos header file (geos_c.h) in %s/include. Please check
-your geos installation and make sure the GEOS_DIR environment
-variable is set correctly.""" %GEOS_dir)
+ except IOError:
+ return None
geos_version = None
for line in f:
if line.startswith('#define GEOS_VERSION'):
geos_version = line.split()[2]
return geos_version
-# get location of geos lib from environment variable.
-GEOS_dir = os.environ.get('GEOS_DIR')
+# get location of geos lib from environment variable if it is set.
+if os.environ.has_key('GEOS_DIR'):
+ GEOS_dir = os.environ.get('GEOS_DIR')
+else:
+# set GEOS_dir manually here if automatic detection fails.
+ GEOS_dir = None
+
if GEOS_dir is None:
- raise SystemExit("""
-please specify the location of geos library and headers with
-the GEOS_DIR environment variable. For example if libgeos_c
-is installed in /usr/local/lib, and geos_c.h is installed in
-/usr/local/include, set GEOS_DIR to /usr/local.""")
-# check that header geos_c.h is in GEOS_dir/include,
-# and that the version number in the header file is 2.2.3.
-geos_version = check_geosversion(GEOS_dir)
+ # if GEOS_dir not set, check a few standard locations.
+ GEOS_dirs = ['/usr/local','/sw','/opt',os.path.expanduser('~')]
+ for direc in GEOS_dirs:
+ geos_version = check_geosversion(direc)
+ print 'checking for GEOS lib in %s ....' % direc
+ if geos_version != '"2.2.3"':
+ continue
+ else:
+ print 'GEOS lib found in %s' % direc
+ GEOS_dir = direc
+ break
+else:
+ geos_version = check_geosversion(GEOS_dir)
if geos_version != '"2.2.3"':
raise SystemExit("""
-geos library version 2.2.3 is required, you have version %s
-installed in %s. Please change the GEOS_DIR environment variable
-to point to the location where geos 2.2.3 is installed, or
-install 2.2.3 from the source code included with basemap
-(see the README for details).""" % (geos_version, GEOS_dir))
+Can't find geos library version 2.2.3. Please set the
+environment variable GEOS_DIR to point to the location
+where geos 2.2.3 is installed (for example, if geos_c.h
+is in /usr/local/include, and libgeos_c is in /usr/local/lib,
+set GEOS_DIR to /usr/local), or edit the setup.py script
+manually and set the variable GEOS_dir (right after the line
+that says "set GEOS_dir manually here".""")
else:
geos_include_dirs=[os.path.join(GEOS_dir,'include'),numpy.get_include()]
geos_library_dirs=[os.path.join(GEOS_dir,'lib')]
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins