安装Shapely时找不到OSError geos_c

时间:2012-09-25 07:50:21

标签: python matplotlib-basemap geos shapely

我是使用python在地图上制作/绘图的新手,一直试图按照这个博文来生成世界地图(http://sciblogs.co.nz/seeing-data/2011/08/12/plotting -geographic-数据上-A-世界地图与 - 蟒/)。在这里遇到了一些问题:

  1. 安装底图(用于绘制地理投影数据的Matplotlib扩展)。

    from mpl_toolkits.basemap import Basemap
    Traceback (most recent call last):
    File "geos_demo.py", line 1, in <module>
    from mpl_toolkits.basemap import Basemap
    ImportError: No module named mpl_toolkits.basemap
    
  2. 安装Shapely,但发生以下错误[1]:

  3. 然后我进入了geos.py文件并将geos.dll的所有引用更改为geos_c.dll,如下所示: http://osgeo-org.1560.n6.nabble.com/osgeo4w-258-Problems-with-python-shapely-python-2-7-2-td4336816.html

  4. 但是,会出现相同的错误[1]。

  5. 我正在使用Python 2.7.1和M​​ac OS 10.7.4。如果我能提供更多信息,请告诉我,非常感谢社区的任何指导!谢谢!

    [1]

        from shapely.geometry import Point
        Traceback (most recent call last): File "<stdin>", line 1, in <module>
        File "/Users/Desktop/python/ENV/lib/python2.7/site-packages/shapely/geometry/__init__.py", line 4, in <module>
        from geo import box, shape, asShape, mapping
        File "/Users/Desktop/python/ENV/lib/python2.7/site-packages/shapely/geometry/geo.py", line 5, in <module>
        from point import Point, asPoint
        File "/Users/Desktop/python/ENV/lib/python2.7/site-packages/shapely/geometry/point.py", line 7, in <module>
        from shapely.coords import required
        File "/Users/Desktop/python/ENV/lib/python2.7/site-packages/shapely/coords.py", line 8, in <module>
        from shapely.geos import lgeos
        File "/Users/Desktop/python/ENV/lib/python2.7/site-packages/shapely/geos.py", line 59, in <module>
        _lgeos = load_dll('geos_c', fallbacks=alt_paths)
         File "/Users/Desktop/python/ENV/lib/python2.7/site-packages/shapely/geos.py", line 44, in load_dll
        libname, fallbacks or []))
        OSError: Could not find library geos_c or load any of its variants        ['/Library/Frameworks/GEOS.framework/Versions/Current/GEOS', '/opt/local/lib/libgeos_c.dylib']
    

6 个答案:

答案 0 :(得分:16)

对于问题2-4,您必须在系统上安装GEOS。 如果您有自制软件,您可以执行以下操作:

brew install geos

如果您没有自制软件,请在此处安装自制软件:http://mxcl.github.com/homebrew/

答案 1 :(得分:12)

在Ubuntu上,要安装GEOS,这对我有用:

$ sudo apt-get install libgeos-dev

答案 2 :(得分:3)

使用OS X 10.11(El Capitan)和Boxen,我已经这样做了:

brew install geos
sudo mkdir /opt/local
sudo ln -s /opt/boxen/homebrew/lib /opt/local/lib

让Shapely在其中一个愿意寻找的位置找到libgeos_c.dylib

答案 3 :(得分:2)

问题似乎是您实际上没有安装所需的模块。

Python代码行,如

from mpl_toolkits.basemap import Basemap

import语句是否告诉您的脚本使用您已经安装的模块(或其他Python代码)。

对于提到的每个软件包(NumPy,Matplotlib,Basemap),您必须弄清楚如何在系统上安装它们。在NumPy和Matplotlib的情况下,这可能很复杂,因为它们需要编译。例如these are theNumpy instructions

如果您只想尝试播放该博文中的说明,那么您可以使用PythonAnywhere which has numpy, matplotlib, and basemap installed already之类的服务。 (免责声明,我在PythonAnywhere上工作......)

答案 4 :(得分:0)

Windows 10上的

,python 3.6.5 64bit

  • 安装osgeo4w
  • 将已安装的文件夹添加到PATH,例如C:\ OSGeo4W64 \ bin(必须包含geos_c.dll)
  • 重新启动命令行

享受

答案 5 :(得分:0)

我知道这是一个非常老的问题,但是作为https://stackoverflow.com/a/12683010/597743的替代方法,您可以使用MacPorts安装geos库:

InputGroup

此处介绍了MacPorts的安装步骤:https://www.macports.org/install.php