历尽艰辛,Windows系统下安装Basemap,以及 PROJ_LIB 错误处理

简介:

Basemap是matplolib的一个组件,是地图数据可视化的重要工具。

本人安装的是基于 Python3.6 版本的 Anaconda,尝试了诸多种安装basemap的方法,其中多次遭遇安装失败,也查找了网上许多tips,发现这个一个普遍的问题。因此决定将该方法分享出来,但不保证一定成功,供大家参考。

首先声明下本人的PC环境:

环境一: win10

  • 操作系统:Windows10

  • 基于 Python3.6 版本的 Anaconda

在 windows10 下,安装步骤如下:

(1)首先,从下面的网站下载 basemap 和 pyproj 的whl文件

https://www.lfd.uci.edu/~gohlke/pythonlibs/

对应 python3.6 版,windows 系统下的文件如下:

  • basemap-1.2.0-cp36-cp36m-win_amd64.whl

  • pyproj-1.9.5.1-cp36-cp36m-win_amd64.whl

(2)安装 pyproj 的 whl 文件, 如下:

 
  1. pip install 路径+文件名

a6ac4f3a78417e5a6413b6eacd1e19cb581ef07e

图1

(3)安装basemap 的 whl 文件,如下:

ceaec6a4696036af6047a8a7118ad081871acb9d

图2

(4)测试下 basemap 是否安装成功

 
  1. from mpl_toolkits.basemap import Basemap

ea9b65bbe97afce60807e3efb9c2828a90e93030

图3

如上图所示,显示 Matplotlib 缺少文件, Basemap 不能正确运行。

(5)更新 Matplotlib 库

 
  1. pip install matplotlib --upgrade

3cea6de32748b9f0f95e6aefb9471f1276eb78d5

图4

(6)再次测试 Basemap 是否安装成功

ca3e0f8d4e1bd9b02da32b24e88a4bde50eeb464

图5

可以看到,现在 Basemap 是可以正确运行的。

接下来,在 Jupyter Notebook 中运行代码试试。

 
  1. import matplotlib as mpl

  2. import matplotlib.pyplot as plt


  3. %matplotlib inline

  4. plt.style.use('ggplot')


  5. from mpl_toolkits.basemap import Basemap


  6. plt.figure(figsize=(8,8))


  7. m = Basemap(projection='ortho', resolution=None,

  8. lat_0=50,lon_0=-100)

  9. m.bluemarble(scale=0.5)

运行结果如下:

d63ecadafca33502c6e2ccaefe1f16c25f0ab48f

图6

以上运行结果说明,Basemap 已经成功安装。

环境二: win7

  • 操作系统:Windows7

  • 基于 Python3.6 版本的 Anaconda

本以为 Basemap 的安装就告一段落了,但本人还有一个 windows 7 系统 的PC。

想着 win7 跟 win10 应该是一样的安装, 但按上述的步骤安装后,出现以下错误:

运行代码:

 
  1. from mpl_toolkits.basemap import Basemap

出现以下问题:

 
  1. Traceback (most recent call last)

  2. <ipython-input-1-d9467465a3b6> in <module>()

  3. ----> 1 from mpl_toolkits.basemap import Basemap


  4. /opt/conda/lib/python3.6/site-packages/mpl_toolkits/basemap/__init__.py in <module>()

  5. 144

  6. 145 # create dictionary that maps epsg codes to Basemap kwargs.

  7. --> 146 pyproj_datadir = os.environ['PROJ_LIB']

  8. 147 epsgf = open(os.path.join(pyproj_datadir,'epsg'))

  9. 148 epsg_dict={}


  10. /opt/conda/lib/python3.6/os.py in __getitem__(self, key)

  11. 667 except KeyError:

  12. 668 # raise KeyError with the original key value

  13. --> 669 raise KeyError(key) from None

  14. 670 return self.decodevalue(value)

  15. 671


  16. KeyError: 'PROJ_LIB'

这个 “PROJ_LIB” 问题,我尝试了很多遍,也查阅了很多网站提供的解决方案,发现大部分都不是太符合,最后在某个英文的解决方案里有提到一种 较为间接的解决方案, 经过尝试后,发现是可以安装 Basemap, 并成功运行的。

在此,给大家分享下。

其中曲折的试错过程就不描述了,直接介绍成功的过程(但不保证在你的电脑上是没有问题的)。

这种方法的核心是 在 Anaconda 下创建一个虚拟环境,然后在 虚拟环境中安装和运行 Basemap。

(1)在 Anaconda 下创建一个虚拟环境

打开 Anaconda Prompt, 在 Anaconda 的默认跟目录下创建一个虚拟环境,名称为 “py36”。

 
  1. conda create -n py36 python=3.6

关于 Anaconda 下虚拟环境的安装,请参考以下内容:http://liyangbit.com/anaconda/anaconda-install-env-to-custom-path/

安装好后,可以用以下命令来查看虚拟环境的列表:

 
  1. conda info --envs

然后激活虚拟环境

 
  1. activate py36

(2)在 虚拟环境 “py36” 下安装 matplotlib

 
  1. pip install matplotlib

(3)在 虚拟环境 “py36” 下安装 pyproj 的 whl 文件, 如下:

 
  1. pip install 路径+文件名

(4)在 虚拟环境 “py36” 下安装basemap 的 whl 文件,如下:

 
  1. pip install 路径+文件名

(5)在 虚拟环境 “py36” 下测试下 basemap 是否安装成功

 
  1. from mpl_toolkits.basemap import Basemap

5b69c9f856fccc5b35770b2840677746aa6ca5cc

图7

可以看到,在虚拟环境下,Basemap 是可以正确运行的。

(6)测试下在 Jupyter Notebook 中 Basemap 是否可以运行

程序文件目录下输入

 
  1. jupyter notebook

发现在默认情况下没有找到之前创建的 虚拟环境。

在 Jupyter Notebook 中, 创建的虚拟环境需要安装一个插件才能正确的显示出来。

打开 Anaconda Prompt,插件的安装命令如下:

 
  1. conda install nb_conda

再重新开启Jupyter Notebook,就可以找到安装好的虚拟环境,如下:

ac98396070e61b0dde4b5eedc72146cf15105c19

图8

在虚拟环境下运行下面的代码:

 
  1. import matplotlib as mpl

  2. import matplotlib.pyplot as plt


  3. %matplotlib inline

  4. plt.style.use('ggplot')


  5. from mpl_toolkits.basemap import Basemap


  6. plt.figure(figsize=(8,8))


  7. m = Basemap(projection='ortho', resolution=None,

  8. lat_0=50,lon_0=-100)

  9. m.bluemarble(scale=0.5)

运行结果如下:

aa1a6d712eb799945aee7a81802051ff6a7f3fe3

图6

以上运行结果说明,Basemap 已经成功安装。


至此,在 win10 和 win7 下都可以安装和运行 Basemap。

如果你对 Basemap 感兴趣,也可以进行安装和使用。

如有问题,不妨一起交流下。


原文发布时间为: 2018-12-04
本文作者:Lemonbit
本文来自云栖社区合作伙伴“ Python数据之道”,了解相关信息可以关注“ Python数据之道”。

相关文章
|
2月前
|
安全 Windows
永久关闭 Windows 11 系统更新
永久关闭 Windows 11 系统更新
157 0
|
2天前
|
关系型数据库 MySQL 数据库
【MySQL基础篇】MySQL概述、Windows下载MySQL8.0超详细图文安装教程
在这一章节,主要介绍两个部分,数据库相关概念及MySQL数据库的介绍、下载、安装、启动及连接。接着,详细描述了MySQL 8.0的版本选择与下载,推荐使用社区版(免费)。安装过程包括自定义安装路径、配置环境变量、启动和停止服务、以及客户端连接测试。此外,还提供了在同一台电脑上安装多个MySQL版本的方法及卸载步骤。最后,解释了关系型数据库(RDBMS)的特点,即基于二维表存储数据,使用SQL语言进行操作,格式统一且便于维护。通过具体的结构图展示了MySQL的数据模型,说明了数据库服务器、数据库、表和记录之间的层次关系。
【MySQL基础篇】MySQL概述、Windows下载MySQL8.0超详细图文安装教程
|
1月前
|
安全 Windows
【Azure Cloud Service】在Windows系统中抓取网络包 ( 不需要另外安全抓包工具)
通常,在生产环境中,为了保证系统环境的安全和纯粹,是不建议安装其它软件或排查工具(如果可以安装,也是需要走审批流程)。 本文将介绍一种,不用安装Wireshark / tcpdump 等工具,使用Windows系统自带的 netsh trace 命令来获取网络包的步骤
71 32
|
1月前
|
存储 负载均衡 Java
如何配置Windows主机MPIO多路径访问存储系统
Windows主机多路径(MPIO)是一种技术,用于在客户端计算机上配置多个路径到存储设备,以提高数据访问的可靠性和性能。本文以Windows2012 R2版本为例介绍如何在客户端主机和存储系统配置多路径访问。
98 13
如何配置Windows主机MPIO多路径访问存储系统
|
25天前
|
机器学习/深度学习 并行计算 异构计算
WINDOWS安装eiseg遇到的问题和解决方法
通过本文的详细步骤和问题解决方法,希望能帮助你顺利在 Windows 系统上安装和运行 EISeg。
48 2
|
1月前
|
网络安全 Windows
Windows server 2012R2系统安装远程桌面服务后无法多用户同时登录是什么原因?
【11月更文挑战第15天】本文介绍了在Windows Server 2012 R2中遇到的多用户无法同时登录远程桌面的问题及其解决方法,包括许可模式限制、组策略配置问题、远程桌面服务配置错误以及网络和防火墙问题四个方面的原因分析及对应的解决方案。
|
1月前
|
NoSQL Linux PHP
如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤
本文介绍了如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤。接着,对比了两种常用的 PHP Redis 客户端扩展:PhpRedis 和 Predis,详细说明了它们的安装方法及优缺点。最后,提供了使用 PhpRedis 和 Predis 在 PHP 中连接 Redis 服务器及进行字符串、列表、集合和哈希等数据类型的基本操作示例。
64 4
|
2月前
|
数据安全/隐私保护 Windows
安装 Windows Server 2019
安装 Windows Server 2019
|
2月前
|
Windows
安装 Windows Server 2003
安装 Windows Server 2003
|
2月前
|
NoSQL Shell MongoDB
Windows 平台安装 MongoDB
10月更文挑战第10天
67 0
Windows 平台安装 MongoDB