我在这里回答我自己的问题,部分是为了帮助其他人解决这个问题,部分是为了自己存档,这样我知道如果再次遇到这个问题如何解决这个问题。我花了很长时间试图弄清楚,并写了详细的说明,所以请看下面:
apt update
Run Code Online (Sandbox Code Playgroud)
运行以下命令安装 GEOS:
apt-get install libgeos-dev
Run Code Online (Sandbox Code Playgroud)
如果这不起作用,请使用以下命令安装所有文件:
apt-get install libgeos-dev libgeos++-dev libgeos-3.8.0 libgeos-c1v5 libgeos-doc
Run Code Online (Sandbox Code Playgroud)
apt install cmake
Run Code Online (Sandbox Code Playgroud)
apt install sqlite3
Run Code Online (Sandbox Code Playgroud)
apt install curl && apt-get install libcurl4-openssl-dev
Run Code Online (Sandbox Code Playgroud)
apt-get一下以防万一它有效:不幸的是,cartopy 最低要求 proj v8.0.0,但是如果使用 apt 安装 proj,则只能安装 proj v6.3.1
仅供参考,以防发生任何变化,这是从 apt 安装 proj 的命令:
apt-get install proj-bin
Run Code Online (Sandbox Code Playgroud)
我相当确定这就是您所需要的,但如果不是,此命令将安装其余的 proj 文件:
apt-get install proj-bin libproj-dev proj-data
Run Code Online (Sandbox Code Playgroud)
要删除上述安装,请运行:
apt-get remove proj-bin
Run Code Online (Sandbox Code Playgroud)
或者:
apt-get remove proj-bin libproj-dev proj-data
Run Code Online (Sandbox Code Playgroud)
因此,如果上述命令不起作用(截至 2022/4/8 不起作用),请按照以下说明从源安装 proj :
proj-x.x.x.tar.gz):wget https://download.osgeo.org/proj/proj-9.0.0.tar.gz
Run Code Online (Sandbox Code Playgroud)
tar -xf proj-9.0.0.tar.gz
Run Code Online (Sandbox Code Playgroud)
cd proj-9.0.0
Run Code Online (Sandbox Code Playgroud)
mkdir build && cd build
Run Code Online (Sandbox Code Playgroud)
cmake ..
cmake --build .
cmake --build . --target install
Run Code Online (Sandbox Code Playgroud)
ctest
Run Code Online (Sandbox Code Playgroud)
测试命令在我的一项测试中失败了 ( 19 - nkg),但其他方面都很好。
./bin您应该在目录中找到所需的文件
最后:
cp ./bin/* /bin
Run Code Online (Sandbox Code Playgroud)
cp ./lib/* /lib
Run Code Online (Sandbox Code Playgroud)
现在,完成所有这些之后,您终于可以使用 pip 安装 cartopy:
pip install cartopy
Run Code Online (Sandbox Code Playgroud)
完成此操作后,我的 cartopy 仍然无法工作。我下周回家处理这个问题,回来后突然就开始工作了,所以也许可以尝试重新启动