似乎我无法在计算机上安装Cartopy。我直接从Windows命令行工作(没有Anaconda或其他代理程序)。
当我尝试“通过pip安装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”实际上没有获得正确的模块版本,所以我去https://proj4.org/install.html下载并安装OSGeo4W,我认为这可以解决我的问题,但似乎没有解决(仅供参考)仍然在我的计算机上有此信息)。
因此,我尝试直接从此https://www.lfd.uci.edu/~gohlke/pythonlibs/#cartopy网站安装cartopy .whl,并尝试使用“ pip install Cartopy-0.17.0-cp37-cp37m-win32.whl”(我使用的是32位版本的Python3.7,因此我可以肯定这是正确的文件)。但是我得到了错误:
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
因此,我尝试下载一个名为tar.gz的文件,但这是我迷失自我的地方。我对tar.gz不熟悉,我看到那里您必须“ ./configure”文件路径,但是我不确定如何执行此操作,也不确定应该在哪里存储该文件。非常感谢您提供有关此问题的任何指导。
答案 0 :(得分:1)
我强烈建议使用conda进行安装(不一定是完整的Anaconda安装),因为它会引入cartopy所需的所有可执行依赖项。安装conda后,安装最新版本的cartopy会像这样:
conda install --channel conda-forge cartopy
不幸的是,在Windows上,Python二进制文件的安装非常臭名昭著(部分原因是工具链随每个Python版本的变化而变化(至少,直到> = python 3.5为止),部分原因是大多数科学python生态系统的开发人员通常不使用或无法使用Windows计算机)。您已经在使用Christoph Gohlke令人难以置信的资源,这是该声明的主要例外。
我个人花了几个星期的时间在Windows上安装了Cartopy(在包括Enthought团队和Christoph Gohlke在内的人们的大力帮助下)-我将所有这些知识都投入到conda-forge包装生态系统中,以便其他人不会如果选择使用conda,则必须感到疼痛。
如果真的,真的,真的必须在Windows机器上手动安装cartopy,您可能想看看https://github.com/conda-forge/cartopy-feedstock/tree/master/recipe,其中包含构建所需的所有步骤Windows中的cartopy。除此之外,其所有依赖项都记录在conda-forge组织的类似名称的存储库中。
最后,根据您的输出和@cgohlke的建议-尝试安装他的Shapely二进制https://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely。
答案 1 :(得分:1)
根据对相应的Github问题https://github.com/googlecolab/colabtools/issues/85#issuecomment-372532728的答复, ubuntu用户需要在安装Cartopy之前安装一些额外的软件包。
!apt-get install libproj-dev proj-data proj-bin
!apt-get install libgeos-dev
!pip install cython
!pip install cartopy
答案 2 :(得分:1)
对于这里的其他人,我是如何在 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
这对我来说似乎很好。
答案 3 :(得分:0)
在Mac上,我这样做了
brew install geos
brew install proj
将此添加到/usr/local/include/proj_api.h的顶部
#define ACCEPT_USE_OF_DEPRECATED_PROJ_API_H
pip install Cartopy
它适用于Python3.6,但不适用于Python3.7.4