win10 python 2.7 安装basemap(win10 无法安装 .net framework 3.5 0x80070057)

我在安装basemap时也绕了点路,这里简单总结下,也算为自己记录一下:

1. 前提是使用pip方法。

2. 命令处理器中,定位到pip所在的文件夹。使用pip install geos (python的basemap这个库是建立在geos中的)

3. 下载pyproj和basemap两个包,下载地址http://www.lfd.uci.edu/~gohlke/pythonlibs/(请下载合适的版本)

4. 使用pip先后安装pyproj和basemap即可。我在win10/Python27

遇到 win10 无法安装 .net framework 3.5 错误代码:0x80070057

解决过程如下:

1. 找到win安装包下的ISO镜像文件,右键单击文件 再点击【装载】就会出现 每个人的盘符不同,

具体方法是:解压ios镜像文件(打开介质文件),找到目录下source文件夹,进去,找到sxs文件夹,把它弄到D盘、E盘...随便哪个盘根目录下,记住,是根目录。我的是C盘。

2. WIN+X 右键单击 再点击 【命令提示符(管理员)】 以管理员身份运行命令行:

3,按顺序执行以下命令 出现的盘符改成你的win10安装包的镜像文件所装载的盘符,我的是C盘:

dism.exe /online /add-package /packagepath:C:\sxs\microsoft-windows-netfx3-ondemand-package~31bf3856ad364e35~amd64~~.cab

dism.exe /online /enable-feature /featurename:NetFX3 /Source:C:\sxs\microsoft-windows-netfx3-ondemand-package~31bf3856ad364e35~amd64~~.cab

4.执行成功:

输入打开或关闭windows功能,如下图:



命令执行过程:

C:\WINDOWS\system32>dism.exe /online /add-package /packagepath:C:\sxs\microsoft-windows-netfx3-ondemand-package~31bf3856ad364e35~amd64~~.cab


部署映像服务和管理工具
版本: 10.0.14393.0

映像版本: 10.0.14393.0

正在处理 1 (共 1) - 正在添加程序包 Microsoft-Windows-NetFx3-OnDemand-Package~31bf3856ad364e35~amd64~~10.0.17134.1
[==========================100.0%==========================]
操作成功完成。

C:\WINDOWS\system32>dism.exe /online /enable-feature /featurename:NetFX3 /Source:C:\sxs\microsoft-windows-netfx3-ondemand-package~31bf3856ad364e35~amd64~~.cab

部署映像服务和管理工具
版本: 10.0.14393.0

映像版本: 10.0.14393.0

启用一个或多个功能
[==========================100.0%==========================]
操作成功完成。

import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap

plt.figure(figsize=(16,8))
m = Basemap()
m.drawcoastlines()

plt.show()

m.drawcountries(linewidth=1.5) #1行代码画上国家


# -*- coding: utf-8 -*- 
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap

plt.figure(figsize=(16,8))
#m = Basemap()
#想显示中国地图,只需要指定一下经纬度
m = Basemap(llcrnrlon=73, llcrnrlat=18, urcrnrlon=135, urcrnrlat=53)
m.drawcoastlines()
m.drawcountries(linewidth=1.5) #开始画上国家
plt.show()


看上去有点变形,这是因为我们没有添加任何投影的原因,Basemap提供24种不同的投影方式,比较常用的是兰勃特投影:

m = Basemap(llcrnrlon=77, llcrnrlat=14, urcrnrlon=140, urcrnrlat=51, projection='lcc', lat_1=33, lat_2=45, lon_0=100)

我们想加上省的边界怎么办呢?在这里你可以下载全世界任何一个国家的行政区划Shape文件,然后我们给它加上:

m.readshapefile('CHN_adm_shp/CHN_adm1', 'states', drawbounds=True)

官方的下载地址为:http://www.gadm.org/download 下载中国shapefile格式的资料,但是有防火墙存在进不去

可以去这里下载:https://github.com/ouening/python-code/tree/master/resources

# -*- coding: utf-8 -*- 
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap

plt.figure(figsize=(16,8))
#m = Basemap()
#想显示中国地图,只需要指定一下经纬度
#m = Basemap(llcrnrlon=73, llcrnrlat=18, urcrnrlon=135, urcrnrlat=53)
#看上去有点变形,这是因为我们没有添加任何投影的原因,Basemap提供24种不同的投影方式,比较常用的是兰勃特投影:
m = Basemap(llcrnrlon=77, llcrnrlat=14, urcrnrlon=140, urcrnrlat=51, projection='lcc', lat_1=33, lat_2=45, lon_0=100)
m.readshapefile('E:\CHN_adm_shp\CHN_adm1', 'states', drawbounds=True)
m.drawcoastlines()
m.drawcountries(linewidth=1.5) #开始画上国家
plt.show()
然后就得到了下图:


猜你喜欢

转载自blog.csdn.net/wukai0909/article/details/80420289