我正在尝试在需要底图的Google datalab Jupyter笔记本中运行脚本,但我无法安装此软件包。 Yelsayed指出该模块需要几个依赖项,但即使在构建这些模块后也无法安装。
以下是我认为需要安装的依赖项:
!pip install Cython
!apt-get update && apt-get install -y gcc
!pip install pyproj
!pip install GEOS
这些安装没有事件。最后,Yelsayed指出的底图本身需要通过以下方式完成:
!pip install https://downloads.sourceforge.net/project/matplotlib/matplotlib-toolkits/basemap-1.0.7/basemap-1.0.7.tar.gz
这需要一段时间来安装并且似乎显示出承诺,但最终它安装到99%然后输出“已杀死”:
Collecting https://downloads.sourceforge.net/project/matplotlib/matplotlib-toolkits/basemap-1.0.7/basemap-1.0.7.tar.gz
Downloading https://downloads.sourceforge.net/project/matplotlib/matplotlib-toolkits/basemap-1.0.7/basemap-1.0.7.tar.gz (129.7MB)
99% |############################### | 129.7MB 154kB/s eta 0:00:01Killed
最后的“杀戮”似乎表明它最终没有奏效。它可靠地执行此操作,重新尝试上述调用以相同的方式失败。在任何情况下,我都提供了导入模块,但仍然得到相同的错误:
ImportError: No module named basemap
为什么会发生这种情况?如何在此环境中成功安装底图?
由于大小,它看起来不像basemap
托管在PyPI上。查看https://github.com/matplotlib/basemap上的安装说明。
您可以使用他们的直接链接v1.0.7:
!pip install https://downloads.sourceforge.net/project/matplotlib/matplotlib-toolkits/basemap-1.0.7/basemap-1.0.7.tar.gz
编辑
以下是安装先决条件的更多细分,在笔记本单元格中运行以下所有内容:
您最好的选择是直接从apt
安装它以避免版本问题。你可以做:
%bash
apt-get update && apt-get install -y build-essential libgeos-3.4.2 libgeos-c1 libgeos++-dev
然后,您可以轻松地使用pip安装python依赖项:
%bash
pip install pyproj pyshp
然后,您可以使用上面的链接安装底图包:
%bash
!pip install https://downloads.sourceforge.net/project/matplotlib/matplotlib-toolkits/basemap-1.0.7/basemap-1.0.7.tar.gz
然后,您可以导入底图类:
from mpl_toolkits.basemap import Basemap
您可以解决在Google Cloud Datalab Notebook中编写此代码的问题
! apt-get -y --allow-unauthenticated --fix-missing install python-mpltoolkits.basemap python-numpy python-matplotlib
开箱即用的谷歌数据库没有底图。
截至2019年2月,这是一个新的谷歌数据库:
第1步:安装先决条件
!apt-get update && apt-get install -y --allow-unauthenticated build-essential libgeos-3.5.0 libgeos-c1v5 libgeos++-dev
注意:我尝试了yelsayed的例子,但是我的datalab找不到libgeos-3.4.2,并且在我运行时不推荐使用libgeos-c1。我将这些值更新为3.5.0和c1v5并且它有效。我还必须添加allow unauthenticated标签部分。
!pip install pyproj pyshp
第2步:安装整个包
!pip install https://downloads.sourceforge.net/project/matplotlib/matplotlib-toolkits/basemap-1.0.7/basemap-1.0.7.tar.gz
第3步:检查包装是否已正确安装
!pip freeze
第4步:导入模块
from mpl_toolkits.basemap import Basemap