Google Earth Engine学习系列
之windowns下搭建GEE本地python开发环境
windowns下搭建GEE本地python开发环境,主要参考知乎大神的步骤:https://zhuanlan.zhihu.com/p/40319581。但是操作过程中遇到了一些问题,因此在网上查阅资料,将自己遇到的问题总结如下。查阅资料的过程中,参考了多个平台的博客内容,文中均已标出,在此表示真诚的感谢!
按照上述知乎大神提供的步骤操作,环境配置中遇到两次报错。两次报错均发生在安装鉴权验证依赖库的过程中,即以下代码报错:
pip install pyCrypto
环境配置完成后,代码试运行过程中也有一次报错: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。
针对上述三个错误及相应的解决方案进行总结,希望能够帮助到有需要的人。
- 文章快速导览
红色字体标出的为报错内容,
黄色高亮标出的为最终解决方案。
1. 错误一
安装鉴权验证依赖库,输入命令 pip install pyCrypto 报错: Microsoft Visual C++ 14.0 is required.
1.1 原因:
在CMD命令行用 pip.exe install pycrypto 安装PyCrypto模块时报错:
error: Microsoft Visual C++ 14.0 is required。是因为pycrypto模块编译需要依赖Visual C++ 14.0的编译工具。
1.2 解决方案:
网上的解决方案总共三种
-
【不推荐】简单粗暴但是耗时耗力——直接安装Visual Studio 2015。
有兴趣的可以参考:https://blog.csdn.net/yingzoe/article/details/81095044?utm_source=blogxgwz0 -
【可尝试】较为简单高效——直接下载whl库进行安装
一般碰到 Microsoft Visual C++ 14.0 is required,最好的解决办法就是下在网上下一个whl库到本地,我们再安装就好了。
常用的whl库下载地址地址:
pipy官方下载
该方法参考该博主,本人未尝试。 -
【推荐】亲测简单高效——安装Visual C++ Build Tools
该方法参考[该博主](https://blog.csdn.net/qq_38161040/article/details/87929616)
下载 Visual C++ Build Tools,下载链接如下:
https://blog.csdn.net/qq_38161040/article/details/88203864
下载之后,按照步骤安装即可。
我在完成上述步骤后,又遇到了以下的报错。
错误二
windows下安装PyCrypto 提示ERROR: Command ‘C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe’ failed with status 2
尝试了手动下载pyceryto包,利用pip install安装,失败了。
最后找到简书上的这篇文章。成功解决问题。
以下内容摘自上述文章:
原因: " 由于 PyCrypto 已经超过三年无人维护,因此 Github 上的开发者 Varbin 在该项目的 Github issue 里呼吁开发们不要再使用 PyCrypto ,而应该将 PyCrypto 替换为 PyCryptodome。对于使用 PyCrypto 的已有项目而言,PyCryptodome 保持了与 PyCrypto 相当高的兼容性并且处于良好的维护状态,因此便于更换。对于要使用 Python 加密库的新项目,建议开发者使用 PyCryptodome 或者 cryptography。"
解决方法: 使用 PyCryptodome安装,cmd命令行的代码如下
pip install pycryptodome
运行结果如下图:
3. 错误三
根据知乎大神的文章,运行以下代码检查环境配置是否成功:
#-*- coding:utf-8 -*-
import ee
ee.Initialize()
image1 = ee.Image('srtm90_v4')
path = image1.getDownloadUrl({
'scale': 30,
'crs': 'EPSG:4326',
'region': '[[-120, 35], [-119, 35], [-119, 34], [-120, 34]]'
})
#获取下载地址
print(path)
结果出现以下报错:
针对该错误,知乎大神自己也做出了补充说明并给出了解决方案,参见https://zhuanlan.zhihu.com/p/50717864
在此结合自己的实际操作进行转述
错误为: [WinError 10060]** 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。
原因: 网络连接问题。访问GEE 网站需要通过代理服务器实现。
解决方案: 在代码中加入以下两句话,加在import ee之后即可
os.environ ['HTTP_PROXY'] ='http://127.0.0.1:1080'
os.environ ['HTTPS_PROXY'] ='http://127.0.0.1:1080'
即将代理服务器的端口写在代码中,保证能够正确的通过代理服务器访问GEE。代码中,http地址的最后一个数1080,需要更改为你自己的代理服务器端口。结合你自己的代理服务器的情况,一般可以自己设置。
比如我自己的代理服务器端口为80,那么以下代码就可以成功运行。
#-*- coding:utf-8 -*-
import ee
import os
os.environ ['HTTP_PROXY'] ='http://127.0.0.1:80'
os.environ ['HTTPS_PROXY'] ='http://127.0.0.1:80'
ee.Initialize()
image1 = ee.Image('srtm90_v4')
path = image1.getDownloadUrl({
'scale': 30,
'crs': 'EPSG:4326',
'region': '[[-120, 35], [-119, 35], [-119, 34], [-120, 34]]'
})
#获取下载地址
print(path)
运行结果为:
至此,GEE的本地python环境配置完成,代码试运行成功~
-----------------撒花------------------庆祝----------------加油-----------------
参考文章: