basemap是matplolib的一个插件,提供了许多将地理位置(如经度和纬度)转化为二维matplotlib图的方式,是地图数据可视化的重要工具。
本人Python是3.6版本,尝试了诸多种安装basemap的方法,都安装失败,内心无比的心塞和崩溃。好在皇天不负苦心人,在尝尽百草之后,终于安装成功了。因此决定将该方法分享出来,不保证一定成功,但供大家参考,同时也把尝试过的其它方法展示出来。
首先声明下本人的PC环境:
- 操作系统:Windows10
- Python版本:3.6
- IDE:Anaconda3/Spyder
目录:
先说尝试失败的安装,本人尝试失败并不代表方法错误,都是人家成功的例子。如果希望直接看到本人安装成功的步骤,请直接跳转至最后。
宝宝心里苦,各种方法都以失败告终,本人这些是尝试都失败了,但确实是别人成功的安装心得,也写出来,不知道对大家是否有用。
需要安装basemap,有问题当然先找官方,于是打开了
basemap官方文档链接:http://matplotlib.org/basemap/
告诉我们要先在这里下载:
basemap下载地址:https://sourceforge.net/projects/matplotlib/files/matplotlib-toolkits/
一看,很开心,有exe格式的安装包,一键搞定岂不“爽歪歪”。
苦苦等待终于下载成功,双击安装包basemap-1.0.7.win-amd64-py3.2.exe
,等待成功的到来。
我擦,说要Python3.2版本,竟然没有 找到,好吧,我服。
思考:
本人并未佐证,仅仅是猜测失败原因:
1.可能的确是版本的原因,安装其它版本的Python,如相对更加成熟的Python2.7会更加容易成功。
2.可能因为本人是通过Anaconda集成的Python环境安装的。
只好又回到官方文档,继续在官文中寻找帮助。
安装帮助 :http://matplotlib.org/basemap/users/installing.html
告诉我们安装步骤:
1必要的准备:
(1)基本需求要满足
(2)必要的包
2 安装步骤:
(1).安装前面提到的必要的一些要求,比如Python或者matplotlib等等。
(2)下载适合的basemap版本,并且解压到某个文件夹,并且将当前目录设置为该文件夹。
(2)开始安装GEOS library,如果已经安装,则仅仅需要设置环境变量,然后继续下一步。如果没有安装,则可以采用以下代码进行安装:
cd geos-3.3.3
export GEOS_DIR=and headers to go>
# A reasonable choice on a Unix-like system is /usr/local, or
# if you don't have permission to write there, your home directory.
./configure --prefix=$GEOS_DIR
make; make install
(4)将当前目录重新设置为basemap的目录(basemap-X.Y.Z的目录),然后运行python setup.py install
,然后通过from mpl_toolkits.basemap import Basemap
检查能否引入包。
(5)运行python simpletest.py
检测以下是否正常运行。
看到人家讲的一板一眼,有非常之 开心,然后准备尝试,等等。。。为啥安装GEOS library的除了cd比较熟悉,其它的看不懂。于是百度了以下,我擦,因为GEOS是针对Linux系统设计的,这个是在Linux的监视器中运行的代码。【此处省略一个撞墙的表情】
思考:
失败原因:个人pc的操作系统是Windows系统,上述方法适用于Linux系统。
首先还是官方文档,在GitHub中找到源代码以及帮助文档。
GitHub中GEOS-3.3.3帮助https://github.com/matplotlib/basemap/tree/master/geos-3.3.3
果然有README
的说明:
Win32
If you use Microsoft Visual C++ (7.1 or later) compiler, you can build
GEOS using NMAKE program and provided makefile.vc files.If you are building from SVN checkout, first run: autogen.bat
Then:
nmake /f makefile.vc MSVC_VER=1400
where 1400 is version number of Visual C++ compiler, here Visual C++ 8.0
from Visual Studio 2005 (supported versions are 1300, 1310, 1400 and 1500).
The bootstrap.bat step is required to generate a couple of header files.In order to build debug configuration of GEOS, additional flag DEBUG=1
is required:
nmake /f makefile.vc MSVC_VER=1400 DEBUG=1
实话实话,看到这个文档,内心又不能平静了,电脑上没有Microsoft 的VC环境,况且说明文档较为抽象,只好祭出“百度大法”搜索结果了。
果然有介绍basemap安装的博客,譬如说:
《绘制地图库Basemap的安装与使用》http://blog.sina.com.cn/s/blog_6ab074c30102w1an.html
将basemap安装分为了四步:
具体步骤请移至该博客,还是一样,没有vc的环境,暂时放弃了这种办法。
思考:
失败原因:pc没有Microsoft visual c++环境,并且对于这种安装方式比较陌生,估计对于c++的熟悉用户很容易安装成功。
既然官方文档以及他人安装经验都避不开vc环境,那么能否从Anaconda入手呢,Anaconda既然是一个第三方管理Python包的工具,想必是提供安装basemap的方法。
果然,Anaconda提供类似于pip功能的conda,可以通过在Anaconda Prompt运行:
conda install basemap
然而等待的结果却是Python2.7,basemap和Python3.6冲突
啥的,这就非常之难受。原来Python3.x是不支持basemap的。
哇,此刻的我是崩溃的,市面上大多数Python教材是2.7版本,很多函数已经有了变化,如今看到不支持basemap的信息,一度想要卸载掉Python3.6,安装Python2.7。
但看到这条信息是16年初的,或许现在经过Anaconda团队的不懈努力,支持了呢?
果然,在Anaconda云端找到了安装basemap的方法(支持了):
package:basemap 1.0.8.dev0
linux-64
win-32
win-64
osx-64
To install this package with conda run:
conda install -c conda-forge basemap=1.0.8.dev0
怀着激动的心情,打开Anaconda Prompt,运行上述代码,等待。。。等待。。。等来了失败。/(ㄒoㄒ)/~~
官方提供的安装方式都无法成功,这可如何是好?卸载Python3.6装更加成熟的Python2.7,还是装上Microsoft visual c++环境?
思考:
失败原因:对这种方法缺乏深入地理解,选用Python2.7会更加容易安装。
怀着再试试其它方法的心情,找到一个网站,Unofficial Windows Binaries for Python Extension Packages,
链接:http://www.lfd.uci.edu/%7Egohlke/pythonlibs/
意思是提供非官方的Windows环境下Python扩展包。通过CTRL + F 快速找到我们要安装的basemap。
Basemap, a matplotlib toolkit for plotting 2D data on maps based on GEOS.
Requires pyproj.
basemap‑1.1.0‑cp27‑cp27m‑win32.whl
basemap‑1.1.0‑cp27‑cp27m‑win_amd64.whl
basemap‑1.1.0‑cp34‑cp34m‑win32.whl
basemap‑1.1.0‑cp34‑cp34m‑win_amd64.whl
basemap‑1.1.0‑cp35‑cp35m‑win32.whl
basemap‑1.1.0‑cp35‑cp35m‑win_amd64.whl
basemap‑1.1.0‑cp36‑cp36m‑win32.whl
basemap‑1.1.0‑cp36‑cp36m‑win_amd64.whl
basemap后面的1.1.0代表版本,cp36表示Python3.6版本,win代表Windows系统,64指的是64位,而且也讲了,安装这个还需要pyproj,于是同时下载了:
接下来具体说下安装步骤:
cd d:/Tool/basemap
。pip install pyproj‑1.9.5.1‑cp36‑cp36m‑win_amd64.whl
pyproj安装好之后继续安装basemap:
pip install basemap‑1.1.0‑cp36‑cp36m‑win_amd64.whl
竟然提示Successfully installed basemap-1.1.0,难以相信,绝处逢生安装成功。
等等,先不着急高兴。看看是否真的安装成功。
from mpl_toolkits.basemap import Basemap
成功import 了basemap,看来是成功了。
再次试验一下,运行一下basemap的sample
cd D:\Tools\basemap\basemap-1.0.7\examples
python simpletest.py