【问题标题】:OSError geos_c could not be found when Installing Shapely [duplicate]安装Shapely时找不到OSError geos_c [重复]
【发布时间】:2012-09-25 07:50:20
【问题描述】:

我是使用 python 在地图上制作/绘图的新手,一直在尝试按照这篇博文生成世界地图 (http://sciblogs.co.nz/seeing-data/2011/08/12/plotting -geographic-data-on-a-world-map-with-python/)。在这里遇到了一些事情:

  1. 安装 Basemap(用于在地理投影上绘制数据的 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] 发生了。

我使用的是 Python 2.7.1 和 Mac 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']

【问题讨论】:

    标签: python matplotlib-basemap geos shapely


    【解决方案1】:

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

    brew install geos

    如果没有自制软件,请在此处安装:Link

    【讨论】:

    • 执行 brew install geos 后我仍然收到相同的错误:OSError: 找不到库 geos_c 或加载其任何变体 ['/Library/Frameworks/GEOS.framework/Versions/Current/GEOS' , '/opt/local/lib/libgeos_c.dylib']
    • 我在使用 brew install geos.its show 安装 geos 后遇到同样的问题找不到 lib geos_c 或加载其任何变体。
    【解决方案2】:

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

    $ sudo apt-get install libgeos-dev
    

    【讨论】:

      【解决方案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

      【讨论】:

      • 我在使用安装了 fink 的 libgeos 运行 cartopy 时遇到了问题,不得不使用这个技巧来解决问题 - 感谢您的提示!
      • 杰斯的建议解决了问题
      【解决方案4】:

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

      类似的 Python 代码行

      from mpl_toolkits.basemap import Basemap
      

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

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

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

      【讨论】:

      • 谢谢@aychedee。我已经安装了 numpy,但无法弄清楚底图。 PythonAnywhere 是否有助于将底图与其他库一起安装?
      • 嗨 Michelle,实际上底图已经作为标准包安装。完成该教程的唯一区别是您必须将绘图保存为文件,然后下载它而不是直接显示它。
      【解决方案5】:

      在 Windows 10 上,python 3.6.5 64 位

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

      享受

      【讨论】:

      【解决方案6】:

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

      port install geos
      

      MacPorts 的安装步骤如下:https://www.macports.org/install.php

      【讨论】:

        猜你喜欢
        • 2019-02-15
        • 1970-01-01
        • 1970-01-01
        • 2022-10-19
        • 2016-10-13
        • 1970-01-01
        • 1970-01-01
        • 2014-01-31
        • 1970-01-01
        相关资源
        最近更新 更多