神农尝百草---Windows环境下为Python3.X安装basemap

basemap是matplolib的一个插件,提供了许多将地理位置(如经度和纬度)转化为二维matplotlib图的方式,是地图数据可视化的重要工具。

本人Python是3.6版本,尝试了诸多种安装basemap的方法,都安装失败,内心无比的心塞和崩溃。好在皇天不负苦心人,在尝尽百草之后,终于安装成功了。因此决定将该方法分享出来,不保证一定成功,但供大家参考,同时也把尝试过的其它方法展示出来。

首先声明下本人的PC环境:
- 操作系统:Windows10
- Python版本:3.6
- IDE:Anaconda3/Spyder

目录:

    • 一 殊途同归不一样的失败
      • 官方文档安装方式1安装包
      • 官方文档安装方式2 帮助文档
      • 退而求次先解决Windows安装GEOS的问题
      • 另开一路从Anaconda入手
    • 二 安装成功 春风得意马蹄疾

先说尝试失败的安装,本人尝试失败并不代表方法错误,都是人家成功的例子。如果希望直接看到本人安装成功的步骤,请直接跳转至最后。

一、 殊途同归,不一样的失败

宝宝心里苦,各种方法都以失败告终,本人这些是尝试都失败了,但确实是别人成功的安装心得,也写出来,不知道对大家是否有用。

1 官方文档安装方式1——安装包

需要安装basemap,有问题当然先找官方,于是打开了
basemap官方文档链接:http://matplotlib.org/basemap/

告诉我们要先在这里下载:
basemap下载地址:https://sourceforge.net/projects/matplotlib/files/matplotlib-toolkits/

一看,很开心,有exe格式的安装包,一键搞定岂不“爽歪歪”。
神农尝百草---Windows环境下为Python3.X安装basemap_第1张图片

苦苦等待终于下载成功,双击安装包basemap-1.0.7.win-amd64-py3.2.exe,等待成功的到来。
神农尝百草---Windows环境下为Python3.X安装basemap_第2张图片

我擦,说要Python3.2版本,竟然没有 找到,好吧,我服。

思考:
本人并未佐证,仅仅是猜测失败原因:
1.可能的确是版本的原因,安装其它版本的Python,如相对更加成熟的Python2.7会更加容易成功。
2.可能因为本人是通过Anaconda集成的Python环境安装的。

2 官方文档安装方式2 —帮助文档

只好又回到官方文档,继续在官文中寻找帮助。
安装帮助 :http://matplotlib.org/basemap/users/installing.html

告诉我们安装步骤:
1必要的准备:
(1)基本需求要满足

  • These are external packages which you will need to install before installing basemap.
    • matplotlib 1.0.0 (or later, download)
    • Python 2.4 (or later, including Python 3)
    • matplotlib requires python 2.4 or later (download)
    • numpy 1.2.1 (or later)
    • array support for python (download)

(2)必要的包

  • GEOS (Geometry Engine - Open Source) library 3.1.1 or later.
    Source code is included in the geos-3.3.3 directory. When building from source, must be built and installed separately from basemap (see build instructions below). Included in Windows binary installers.
  • PROJ4 Cartographic Projections Library.
    Patched version automatically built into basemap.

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系统。

3 退而求次,先解决Windows安装GEOS的问题

首先还是官方文档,在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环境
  • 编译安装GEOS
  • 为GEOS设置环境变量
  • 安装Basemap

具体步骤请移至该博客,还是一样,没有vc的环境,暂时放弃了这种办法。

思考:
失败原因:pc没有Microsoft visual c++环境,并且对于这种安装方式比较陌生,估计对于c++的熟悉用户很容易安装成功。

4 另开一路,从Anaconda入手

既然官方文档以及他人安装经验都避不开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,于是同时下载了:

  • basemap‑1.1.0‑cp36‑cp36m‑win_amd64.whl 和
  • pyproj‑1.9.5.1‑cp36‑cp36m‑win_amd64.whl

接下来具体说下安装步骤:

  1. 确认电脑有pip
  2. 下载pyproj和basemap
    通过连接 http://www.lfd.uci.edu/~gohlke/pythonlibs/下载两个文件:
    basemap‑1.1.0‑cp36‑cp36m‑win_amd64.whl
    pyproj‑1.9.5.1‑cp36‑cp36m‑win_amd64.whl
  3. 打开命令提示符,将当前目录设置为下载文件所在的目录:cd d:/Tool/basemap
  4. 安装pyproj和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  

神农尝百草---Windows环境下为Python3.X安装basemap_第3张图片

竟然提示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

得到了图:
神农尝百草---Windows环境下为Python3.X安装basemap_第4张图片

大功告成,一阵捯饬,尝试各种方法,终于苦尽甘来,安装basemap成功。
再看看其他的例子:
神农尝百草---Windows环境下为Python3.X安装basemap_第5张图片

你可能感兴趣的:(Python)