diff --git a/shapely/geos.py b/shapely/geos.py index 09bf1ab..837aa98 100644 --- a/shapely/geos.py +++ b/shapely/geos.py @@ -55,100 +55,10 @@ def load_dll(libname, fallbacks=None, mode=DEFAULT_MODE): "Could not find lib {0} or load any of its variants {1}.".format( libname, fallbacks or [])) -_lgeos = None - -if sys.platform.startswith('linux'): - # Test to see if we have a wheel repaired by 'auditwheel' containing its - # own libgeos_c - geos_whl_so = glob.glob(os.path.abspath(os.path.join(os.path.dirname( - __file__), '.libs/libgeos_c-*.so.*'))) - if len(geos_whl_so) == 1: - _lgeos = CDLL(geos_whl_so[0]) - LOG.debug("Found GEOS DLL: %r, using it.", _lgeos) - else: - alt_paths = [ - 'libgeos_c.so.1', - 'libgeos_c.so', - # anaconda - os.path.join(sys.prefix, "lib", "libgeos_c.so"), - ] - _lgeos = load_dll('geos_c', fallbacks=alt_paths) - free = load_dll('c').free - free.argtypes = [c_void_p] - free.restype = None - -elif sys.platform == 'darwin': - # Test to see if we have a delocated wheel with a GEOS dylib. - geos_whl_dylib = os.path.abspath(os.path.join(os.path.dirname( - __file__), '.dylibs/libgeos_c.1.dylib')) - if os.path.exists(geos_whl_dylib): - _lgeos = CDLL(geos_whl_dylib) - LOG.debug("Found GEOS DLL: %r, using it.", _lgeos) - - else: - if hasattr(sys, 'frozen'): - try: - # .app file from py2app - alt_paths = [os.path.join( - os.environ['RESOURCEPATH'], '..', 'Frameworks', - 'libgeos_c.dylib')] - except KeyError: - # binary from pyinstaller - alt_paths = [ - os.path.join(sys.executable, 'libgeos_c.dylib')] - if hasattr(sys, '_MEIPASS'): - alt_paths.append( - os.path.join(sys._MEIPASS, 'libgeos_c.1.dylib')) - else: - alt_paths = [ - # anaconda - os.path.join(sys.prefix, "lib", "libgeos_c.dylib"), - # The Framework build from Kyng Chaos - "/Library/Frameworks/GEOS.framework/Versions/Current/GEOS", - # macports - '/opt/local/lib/libgeos_c.dylib', - ] - _lgeos = load_dll('geos_c', fallbacks=alt_paths) - - free = load_dll('c').free - free.argtypes = [c_void_p] - free.restype = None - -elif sys.platform == 'win32': - try: - egg_dlls = os.path.abspath( - os.path.join(os.path.dirname(__file__), 'DLLs')) - if hasattr(sys, "frozen"): - wininst_dlls = os.path.normpath( - os.path.abspath(sys.executable + '../../DLLS')) - else: - wininst_dlls = os.path.abspath(os.__file__ + "../../../DLLs") - original_path = os.environ['PATH'] - os.environ['PATH'] = "%s;%s;%s" % \ - (egg_dlls, wininst_dlls, original_path) - _lgeos = load_dll("geos_c.dll", fallbacks=[ - os.path.join(sys.prefix, "Library", "lib", "geos_c.dll"), - ]) - except (ImportError, WindowsError, OSError): - raise - - def free(m): - try: - cdll.msvcrt.free(m) - except WindowsError: - # XXX: See http://trac.gispython.org/projects/PCL/ticket/149 - pass - -elif sys.platform == 'sunos5': - _lgeos = load_dll('geos_c', fallbacks=['libgeos_c.so.1', 'libgeos_c.so']) - free = CDLL('libc.so.1').free - free.argtypes = [c_void_p] - free.restype = None -else: # other *nix systems - _lgeos = load_dll('geos_c', fallbacks=['libgeos_c.so.1', 'libgeos_c.so']) - free = load_dll('c', fallbacks=['libc.so.6']).free - free.argtypes = [c_void_p] - free.restype = None +_lgeos = CDLL('@libgeos_c@') +free = CDLL('@libc@').free +free.argtypes = [c_void_p] +free.restype = None def _geos_version():