From: <js...@us...> - 2007-11-12 16:50:20
|
Revision: 4224 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4224&view=rev Author: jswhit Date: 2007-11-12 08:50:16 -0800 (Mon, 12 Nov 2007) Log Message: ----------- include Shapely Modified Paths: -------------- trunk/toolkits/basemap-testing/setup.py Added Paths: ----------- trunk/toolkits/basemap-testing/lib/shapely/ trunk/toolkits/basemap-testing/lib/shapely/__init__.py trunk/toolkits/basemap-testing/lib/shapely/find_geoslib.py Added: trunk/toolkits/basemap-testing/lib/shapely/__init__.py =================================================================== --- trunk/toolkits/basemap-testing/lib/shapely/__init__.py (rev 0) +++ trunk/toolkits/basemap-testing/lib/shapely/__init__.py 2007-11-12 16:50:16 UTC (rev 4224) @@ -0,0 +1 @@ +# Added: trunk/toolkits/basemap-testing/lib/shapely/find_geoslib.py =================================================================== --- trunk/toolkits/basemap-testing/lib/shapely/find_geoslib.py (rev 0) +++ trunk/toolkits/basemap-testing/lib/shapely/find_geoslib.py 2007-11-12 16:50:16 UTC (rev 4224) @@ -0,0 +1,69 @@ +from ctypes import CDLL +from ctypes.util import find_library +import os, sys + +def find_geoslib(): + lgeos = False + # if GEOS_DIR env var set, look there for shared lib. + if os.environ.has_key('GEOS_DIR'): + geos_dir = os.environ['GEOS_DIR'] + from ctypes import CDLL + if sys.platform == 'win32': + try: + lgeos = CDLL(os.path.join(geos_dir,'libgeos_c.dll')) + except (ImportError, WindowsError): + # Try GEOS DLL from the Windows PostGIS installer for + # PostgreSQL 8.2 before failing + try: + lgeos = CDLL(os.path.join(geos_dir,'libgeos_c-1.dll')) + except: + pass + elif sys.platform == 'darwin': + try: + lgeos = CDLL(os.path.join(geos_dir,'libgeos_c.dylib')) + except: + pass + else: + # Try the major versioned name first, falling back on the unversioned name. + try: + lgeos = CDLL(os.path.join(geos_dir,'libgeos_c.so.1')) + except ImportError: + try: + lgeos = CDLL(os.path.join(geos_dir,'libgeos_c.so')) + except: + pass + # if GEOS_DIR env var not set, use find_library to look for shared lib. + else: + if sys.platform == 'win32': + try: + lgeos = find_library('libgeos_c.dll') + except (ImportError, WindowsError): + # Try GEOS DLL from the Windows PostGIS installer for + # PostgreSQL 8.2 before failing + lgeos = find_library('libgeos_c-1.dll') + elif sys.platform == 'darwin': + try: + lgeos = find_library('libgeos_c.dylib') + except: + # fink installs in /sw, but find_library doesn't look there. + lgeos = find_library('/sw/lib/libgeos_c.dylib') + else: + # Try the major versioned name first, falling back on the unversioned name. + try: + lgeos = find_library('libgeos_c.so.1') + except ImportError: + lgeos = find_library('libgeos_c.so') + if not lgeos: + raise ImportError(""" +Cannot find libgeos_c. Please install version 2.2.3. +If it is installed already, please set the GEOS_DIR environment +variable to the location in which it is installed.""") + else: + # lgeos is either a string (containing the absolute + # path to the shared lib) or a CDLL instance. + # convert it to a CDLL instance if it is not one already. + try: + lgeos = CDLL(lgeos) + except: + pass + return lgeos Modified: trunk/toolkits/basemap-testing/setup.py =================================================================== --- trunk/toolkits/basemap-testing/setup.py 2007-11-12 16:31:28 UTC (rev 4223) +++ trunk/toolkits/basemap-testing/setup.py 2007-11-12 16:50:16 UTC (rev 4224) @@ -1,15 +1,8 @@ import sys, glob, os major, minor1, minor2, s, tmp = sys.version_info -if major==2 and minor1<=3: - # setuptools monkeypatches distutils.core.Distribution to support - # package_data - try: import setuptools - except ImportError: - raise SystemExit("""\ -matplotlib requires setuptools for installation. Please download -http://peak.telecommunity.com/dist/ez_setup.py and run it (as su if -you are doing a system wide install) to install the proper version of -setuptools for your system""") +if major==2 and minor1<4: + raise SystemExit(""" +python 2.4 or higher required""") from distutils.core import Extension from distutils.util import convert_path @@ -67,8 +60,33 @@ else: additional_params = {} from distutils.core import setup + +# check for ctypes +try: from ctypes.util import find_library +except ImportError: havectypes = False +else: havectypes = True +if not havectypes: + raise SystemExit(""" +basemap requires ctypes, which comes with python 2.5. If you are +running python 2.4, please install ctypes from +http://pypi.python.org/pypi/ctypes""") + +# check for libgeos_c +sys.path.append('lib/shapely') +from find_geoslib import find_geoslib +lgeos = find_geoslib() +sys.path.remove('lib/shapely') + +# check for shapely +try: import shapely +except ImportError: haveshapely = False +else: haveshapely = True +if not haveshapely: + packages.append('shapely') + packages.append('shapely.geometry') + package_dirs['shapely'] = os.path.join('lib','shapely') + - # Specify all the required mpl data pyproj_datafiles = ['data/epsg', 'data/esri', 'data/esri.extra', 'data/GL27', 'data/nad.lst', 'data/nad27', 'data/nad83', 'data/ntv2_out.dist', 'data/other.extra', 'data/pj_out27.dist', 'data/pj_out83.dist', 'data/proj_def.dat', 'data/README', 'data/td_out.dist', 'data/test27', 'data/test83', 'data/testntv2', 'data/testvarious', 'data/world'] boundaryfiles = [] This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |