Cartopy 无法识别 Windows 上安装的 PROJ 的 GEOS

问题描述 投票:0回答:3

我正在尝试在 Windows 上安装 Cartopy。我已经从他们的网站安装了所有依赖项,但是当我去运行时

pip install Cartopy

我得到:

 Complete output (5 lines):
  setup.py:117: UserWarning: Unable to determine GEOS version. Ensure you have 3.7.2 or later installed, or installation may fail.
    warnings.warn(
  setup.py:166: UserWarning: Unable to determine Proj version. Ensure you have 8.0.0 or later installed, or installation may fail.
    warnings.warn(
  Proj version 0.0.0 is installed, but cartopy requires at least version 8.0.0

我已经跑并成功完成了

pip install proj
pip install geos
python pip cartopy proj geos
3个回答
20
投票

使用 pip 在 Windows 上安装 Cartopy 并不简单。尽管如此,这里是一个使用对我有用的方法的 cartopy 安装概述,特别是针对 Windows 并且不使用 conda。

  1. 首先卸载 proj、geos 和 shapely(如果已安装),否则跳至步骤 2。这将有助于在后续步骤中链接它们。 pip uninstall shapely

    pip uninstall proj
    pip uninstall geos
    
    

  2. 从 OSGeo4W 安装 proj 和 geos。您不能使用 pip 来安装它们,因为 pip 指向同名的其他项目。相反,请使用 OSGeo4W 安装程序:https://trac.osgeo.org/osgeo4w/ 以管理员身份运行并使用所有默认选项,包括默认安装目录(高级安装 -> 从 Internet 安装 -> 所有用户 -> 下一步-> 直接连接 -> download.osgeo.org)。然后搜索 proj,展开 Libs 并单击顶部的两个“skip”(proj 和 proj-data)各一次以切换到最新版本。现在搜索 geos,再次展开 Libs,然后将第一个“skip”(geos)切换到最新版本。然后单击下一步,允许安装程序加载依赖项,然后单击下一步。安装过程对我来说大约需要 5 分钟。您现在已经安装了 proj 和 geos。

  3. 从 .whl 整齐地安装。您不能使用cartopy安装说明中列出的方法;它无法正常链接到 geos,并且导入 cartopy 时会出现错误。相反,请前往 https://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely https://pypi.org/project/shapely/#files 并下载适合您的 python 安装的版本(例如,如果您运行 64 位 python 3.10,请下载 shapely‑2.0.2‑cp310‑cp310‑win_amd64.whl)现在您可以运行 pip install \{path}\{to}\{whl}\{Shapely_file.whl}

    
    

  4. 从.whl安装cartopy。您可以在这里下载适合您的一个: https://www.lfd.uci.edu/~gohlke/pythonlibs/#cartopy https://pypi.org/project/Cartopy/#files 选择最适合您的那个适合您的系统(例如,如果您运行 64 位 python 3.10,请下载 Cartopy‑0.22.0‑cp310‑cp310‑win_amd64.whl) 现在您可以运行 pip install \{path}\{to}\{whl}\{Cartopy_file.whl}

    
    

就是这样!我花了很长时间并筛选了至少几十个“只使用 conda”线程来解决这个问题。

选择相关讨论:

https://github.com/SciTools/cartopy/issues/1471 https://towardsdatascience.com/install-shapely-on-windows-72b6581bb46c

注意:此答案最初经过测试并适用于 shapely v1.8.2 和 cartopy v0.20.2。


0
投票

jlave提供的答案在安装Cartopy时效果很好。

为了在安装后成功导入 Cartopy,需要从与 shapely 相同的站点安装 pyproj。

    如果 pyproj 已存在,请将其删除。
  • 然后从
  • https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyproj 下载适合您系统的 pyproj 版本
如果不包括此步骤,我将收到以下错误:

ImportError: DLL load failed while importing trace: The specified module could not be found.
对于 cartopy.crs 和 cartopy.trace


-4
投票
帮自己一个忙,使用

conda (或者更好的 mamba)来管理你的包依赖关系!

1 行,它可以在 Windows、MacOS 和 Linux 中开箱即用。

conda install -c conda-forge cartopy
自己管理依赖项是乏味且容易出错的,特别是当涉及到 c 或 c++ 依赖项时(pyproj 或 gdal 等地理库就是这种情况)

...这也是 cartopy 在其

docs 中推荐的内容!

© www.soinside.com 2019 - 2024. All rights reserved.