无法启动Google Cloud SDK,导入_remove_dead_weakref失败,GKE登录受阻
_remove_dead_weakref导入错误的方案 我之前也碰到过一模一样的问题,结合你Windows 10 64位、Python 2.7.15、Cloud SDK 308.0.0的环境情况,给你整理几个可行的解决步骤:
先理清楚问题根源
这个错误本质上要么是Cloud SDK的捆绑Python安装包损坏,要么是Python版本兼容性出了问题——虽然官方说Python 2.7支持308.0.0版本的SDK,但_remove_dead_weakref其实是Python 3.3及以上版本才有的函数,这说明SDK代码里可能误调用了仅Python 3存在的API,或者你的捆绑Python环境本身有损坏。
具体解决办法
重新安装带捆绑Python的Cloud SDK
下载SDK时如果网络不稳定很容易导致文件损坏。建议你彻底删除现有SDK目录,重新下载308.0.0版本的Windows 64位捆绑Python安装包,安装时选择默认路径,尽量不要自定义路径(避免权限或路径解析问题)。切换到Python 3.5+版本运行SDK
既然Python 2.7出现了API不兼容的情况,你可以安装一个Python 3.5到3.9之间的版本(这个区间和SDK 308.0.0兼容性最好),然后设置环境变量指向这个Python:setx CLOUDSDK_PYTHON "C:\你的Python3安装路径\python.exe"设置完成后重启命令提示符,再执行
gcloud init试试。清理SDK缓存文件
缓存文件损坏也会引发奇怪的导入错误。找到你的SDK目录(比如C:\Users\LF\.kube\Cloud SDK\google-cloud-sdk),删除里面的.cache文件夹,之后重新运行初始化命令。排查系统PATH的干扰
确保系统PATH里没有其他Python版本的路径排在你指定的CLOUDSDK_PYTHON路径前面,防止SDK误调用其他版本的Python。可以临时把其他Python路径从PATH中移除,测试是否解决问题。
如果以上方法都没用,你可以尝试降级到更早版本的Cloud SDK(比如290.0.0左右),这些版本对Python 2.7的兼容性会更稳定。
内容的提问来源于stack exchange,提问作者van_folmert

