26

我是使用 python 在地图上制作/绘图的新手,一直在尝试按照这篇博文生成世界地图 (http://sciblogs.co.nz/seeing-data/2011/08/12/plotting-geographic-带有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- 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']
4

6 回答 6

35

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

brew install geos

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

于 2012-10-02T00:30:50.217 回答
14

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

$ sudo apt-get install libgeos-dev
于 2013-07-15T17:50:11.930 回答
9

使用 OS X 10.11 (El Capitan) 和 Boxen,我必须这样做:

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

让 Shapelylibgeos_c.dylib在它愿意寻找的位置之一找到它。

于 2015-10-13T03:16:11.930 回答
2

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

Python 代码行,例如

from mpl_toolkits.basemap import Basemap

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

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

如果您只是想尝试使用该博客文章中的说明,那么您可以使用PythonAnywhere 之类的服务,该服务已经安装了 numpy、matplotlib 和 basemap。(免责声明,我在 PythonAnywhere 工作......)

于 2012-09-25T08:02:31.253 回答
0

在 Windows 10 上,python 3.6.5 64 位

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

请享用

于 2018-05-31T12:10:13.380 回答
0

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

port install geos

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

于 2019-01-18T15:21:32.047 回答