GEE Python API环境配置——解决Jupyter Notebook:KeyError: ‘client_id‘、‘gcloud‘ (超详细内附:如何快速找到ip地址和端口号)

一、问题描述

油管(B站同步)的QiuSheng Wu老师教授如何安装 Earth Engine Python API的逻辑是:(https://youtu.be/JCyFZRJOmOk)https://youtu.be/JCyFZRJOmOk

①获得GEE平台的账户认证(即令牌—一个账户只有一个一样的令牌)

②粘贴在jupyter notebook的verification code框框里即可

然鹅,实际操作并没有视频里那么丝滑/(ㄒoㄒ)/~~

我贴了码之后,一直报错:KeyError: 'client_id'

 

 没想到看似简单的一个内容花费了我快一天搞定,所以来跟小伙伴们分享一下~

二、问题原因分析

总的来说就是网络原因。

即使我们已经科学上网,但可能是IP地址等属性还是归属于国内。(具体原理我也不懂hhh)

就如同之前装geemap包的时候,也需要关掉”科学上网“才可以安装。

三、解决方法

既然知道了问题在哪,解决的方法就是:需要将你的网络接口跟GEE匹配上,再去认证

step1:Win+r键打开运行框,键入cmd,打开 CMD 命令提示符窗口

 

step2:网络配置

set http_proxy=http://ip地址:端口号
set https_proxy=https://ip地址:端口号

 划重点!这里的ip地址和端口号换成你自己电脑的!!!

如何找到ip地址和端口号?(全网最详细最简单教程!不要去百度里搜,相信我!)

①点击网络和Internet设置

②找到代理,即可找到IP和端口

 

③按上述代码组装(举个栗子:我的ip+端口如下所示) 

step3:之前的命令提示符窗口不要关闭,紧接着运行这条命令

earthengine authenticate

如下图所示

 执行!

按wsZhang大佬文章(https://www.cnblogs.com/wszhang/p/12253158.html)里讲的,到这里,应该就配置好,可以认证了,但我又又又出现了问题。。。

出现的问题:'gcloud' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

这里的“Fetching credentials using gcloud”的意思是, 需要使用gcloud才可以完成身份认证,这里的gcloud指的就是软件Google Cloud。

因此,解决方法是:安装Google Cloud

安装 gcloud CLI  |  Google Cloudhttps://cloud.google.com/sdk/docs/install

 安装有些漫长,而且最好安装在C盘,只有88M左右(对,尝试D盘好久都安不上  /(ㄒoㄒ)/~~)

 安装之后软件会带着你做认证,关联到你的gMail账户即可~

step4:回到jupyter notebook完成初始化和认证

注意:在jupter里也需要重新进行网络配置,识别你的ip和端口号,这里导入内置模块OS。

import ee
import os
os.environ['http_proxy'] = "http://127.0.0.1:7890"#还是之前的ip
os.environ['https_proxy'] = "https://127.0.0.1:7890"#还是之前的端口号
ee.Initialize()#初始化

运行成功!

PS:这里并没有让我再输入令牌,应该是系统有保存到

测试一下:

import geemap
m = geemap.Map()
m

结果:

完美!!! 

四、引用

本文主要参考👇文章,感谢大佬wsZhang~[GEE Tips-4]本地配置GEE Python API环境(Windows) – wsZhang – 博客园 (cnblogs.com)https://www.cnblogs.com/wszhang/p/12253158.html

来源:LXZYJY

物联沃分享整理
物联沃-IOTWORD物联网 » GEE Python API环境配置——解决Jupyter Notebook:KeyError: ‘client_id‘、‘gcloud‘ (超详细内附:如何快速找到ip地址和端口号)

发表评论