使用pip安装来安装Cartopy,但缺少至少4.9.0版本的Proj

使用pip安装来安装Cartopy,但缺少至少4.9.0版本的Proj,pip,cartopy,proj,Pip,Cartopy,Proj,似乎我无法让pip在我的计算机上安装Cartopy。我直接从windows命令行工作(没有Anaconda或其他代理程序) 当我尝试“pip install cartopy”时,我得到了预期的结果: C:\Users\Justin\Documents\Python Programs>pip install cartopy Collecting cartopy Using cached https://files.pythonhosted.org/packages/e5/92/fe883

似乎我无法让pip在我的计算机上安装Cartopy。我直接从windows命令行工作(没有Anaconda或其他代理程序)

当我尝试“pip install cartopy”时,我得到了预期的结果:

C:\Users\Justin\Documents\Python Programs>pip install cartopy
Collecting cartopy
  Using cached https://files.pythonhosted.org/packages/e5/92/fe8838fa8158931906dfc4f16c5c1436b3dd2daf83592645b179581403ad/Cartopy-0.17.0.tar.gz
  Installing build dependencies ... done
    Complete output from command python setup.py egg_info:
    C:\Users\Justin\AppData\Local\Temp\pip-install-cetb0vj7\cartopy\setup.py:171: UserWarning: Unable to determine GEOS version. Ensure you have 3.3.3 or later installed, or installation may fail.
      '.'.join(str(v) for v in GEOS_MIN_VERSION), ))
    Proj 4.9.0 must be installed.

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in C:\Users\Justin\AppData\Local\Temp\pip-install-cetb0vj7\cartopy\
我知道“pip install proj”实际上没有得到正确的模块版本,所以我去下载并安装了OSGeo4W,我认为它可以解决我的问题,但似乎没有(作为参考,我的计算机上仍然有这个)

因此,我尝试直接从这个网站安装cartopy.whl,并尝试使用“pip install cartopy-0.17.0-cp37-cp37m-win32.whl”(我使用的是Python3.7的32位版本,所以我相当确定这是正确的文件)。但是我得到了一个错误:

C:\Users\Justin\Documents\Python Programs>pip install Cartopy-0.17.0-cp37-cp37m-win32.whl
    Processing c:\users\justin\documents\python programs\cartopy-0.17.0-cp37-cp37m-win32.whl
        Requirement already satisfied: numpy>=1.10 in c:\users\justin\appdata\local\programs\python\python37\lib\site-packages (from Cartopy==0.17.0) (1.15.1)
        Requirement already satisfied: setuptools>=0.7.2 in c:\users\justin\appdata\local\programs\python\python37\lib\site-packages (from Cartopy==0.17.0) (40.6.2)
        Requirement already satisfied: six>=1.3.0 in c:\users\justin\appdata\local\programs\python\python37\lib\site-packages (from Cartopy==0.17.0) (1.11.0)
        Collecting pyshp>=1.1.4 (from Cartopy==0.17.0)
          Downloading https://files.pythonhosted.org/packages/08/3e/3bda7dfdbee0d7a22d38443f5cc8d154ff6d4701e615f4c07bf1ed003563/pyshp-2.0.1.tar.gz (214kB)
            100% |████████████████████████████████| 215kB 1.4MB/s
        Collecting shapely>=1.5.6 (from Cartopy==0.17.0)
          Using cached https://files.pythonhosted.org/packages/a2/fb/7a7af9ef7a35d16fa23b127abee272cfc483ca89029b73e92e93cdf36e6b/Shapely-1.6.4.post2.tar.gz
            Complete output from command python setup.py egg_info:
            Traceback (most recent call last):
              File "<string>", line 1, in <module>
              File "C:\Users\Justin\AppData\Local\Temp\pip-install-sb4uyliy\shapely\setup.py", line 80, in <module>
                from shapely._buildcfg import geos_version_string, geos_version, \
              File "C:\Users\Justin\AppData\Local\Temp\pip-install-sb4uyliy\shapely\shapely\_buildcfg.py", line 200, in <module>
                lgeos = CDLL("geos_c.dll")
              File "c:\users\justin\appdata\local\programs\python\python37\lib\ctypes\__init__.py", line 356, in __init__
                self._handle = _dlopen(self._name, mode)
            OSError: [WinError 126] The specified module could not be found
C:\Users\Justin\Documents\Python Programs>pip安装Cartopy-0.17.0-cp37-cp37m-win32.whl
处理c:\users\justin\documents\python programs\cartopy-0.17.0-cp37-cp37m-win32.whl
已满足要求:c:\users\justin\appdata\local\programs\python\python37\lib\site包中的numpy>=1.10(来自Cartopy==0.17.0)(1.15.1)
已满足要求:c:\users\justin\appdata\local\programs\python\python37\lib\site软件包中的setuptools>=0.7.2(来自Cartopy==0.17.0)(40.6.2)
已满足要求:c:\users\justin\appdata\local\programs\python\python37\lib\site包中的六个>=1.3.0(来自Cartopy==0.17.0)(1.11.0)
收集PYSP>=1.1.4(从Cartopy==0.17.0)
正在下载https://files.pythonhosted.org/packages/08/3e/3bda7dfdbee0d7a22d38443f5cc8d154ff6d4701e615f4c07bf1ed003563/pyshp-2.0.1.tar.gz (214kB)
100% |████████████████████████████████| 215kB 1.4MB/s
收集形状>=1.5.6(从Cartopy==0.17.0)
使用缓存https://files.pythonhosted.org/packages/a2/fb/7a7af9ef7a35d16fa23b127abee272cfc483ca89029b73e92e93cdf36e6b/Shapely-1.6.4.post2.tar.gz
从命令python setup.py egg_info完成输出:
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“C:\Users\Justin\AppData\Local\Temp\pip-install-sb4uyliy\shapely\setup.py”,第80行,在
从shapely.\u buildcfg导入geos\u版本\u字符串,geos\u版本\
文件“C:\Users\Justin\AppData\Local\Temp\pip-install-sb4uyliy\shapely\shapely\\u buildcfg.py”,第200行,在
lgeos=CDLL(“geos_c.dll”)
文件“c:\users\justin\appdata\local\programs\python\python37\lib\ctypes\\ uuuuu init\uuuu.py”,第356行,在\uuu init中__
self.\u handle=\u dlopen(self.\u名称,模式)
OSError:[WinError 126]找不到指定的模块

然后我试着下载一个叫做tar.gz的文件,但这就是我迷失自我的地方。我不熟悉tar.gz,我看到您必须“/配置”文件路径,但我不确定如何执行此操作,也不确定应该将所述文件存储在何处。非常感谢您提供有关此问题的任何指导。

我强烈建议使用conda(不一定是完整的Anaconda安装)进行安装,因为它将引入cartopy所需的所有可执行依赖项。安装了conda后,安装最新版本的cartopy将如下所示:

conda install --channel conda-forge cartopy
不幸的是,在Windows上安装Python二进制文件是出了名的邪恶(部分原因是工具链随着每个Python版本的变化而变化[至少在>=Python 3.5之前是如此],部分原因是科学Python生态系统的大多数开发人员通常不使用或无法访问Windows机器)。克里斯托夫·高尔克(Christoph Gohlke)的令人难以置信的资源(您已经在使用)是本声明的主要例外

我个人花了几个人周的时间在Windows上安装cartopy(在包括Enthound团队和Christoph Gohlke在内的人员的大力帮助下)——我将所有这些知识注入了conda forge包装生态系统,这样其他人在选择使用conda时就不必感到痛苦

如果您必须在Windows计算机上手动安装cartopy,您可能想看看其中包含在Windows中构建cartopy所需的所有步骤。除此之外,它的所有依赖项都记录在conda forge组织上类似命名的存储库中


最后,根据您的输出和@cgohlke的建议,尝试安装他的Shapely二进制文件。

根据对相应Github问题的响应, ubuntu用户需要在安装Cartopy之前安装一些额外的软件包

!apt get安装libproj开发项目数据项目箱
!apt-get-install-libgeos-dev
!pip安装cython
!pip安装cartopy
在Mac电脑上,我这样做了

brew安装geos
brew安装项目
将此添加到
/usr/local/include/proj_api.h

#define ACCEPT_USE_OF_DEPRECATED_PROJ_API_H

pip install Cartopy

它适用于Python3.6,但不适用于Python3.7.4

其他任何人。下面是我如何在Linux Mint 20.04 LTS上使用Python3 venv环境实现的:

激活环境,然后安装以下组件:

sudo apt install python3-dev libproj-dev proj-data proj-bin libgeos-dev
pip3 install wheel numpy cartopy

这对我来说似乎很好。

安装。从2019年9月18日起,我按照您的步骤成功地在MacBook Air OS High Sierra上安装了Cartopy。conda安装--channel conda forge Cartopy应该作为Windows上的管理员运行。为了正常工作,我必须添加
sudo apt安装python3 dev