我的manjaro安装有一些系统更新,之后我在尝试运行gcloud
:时收到以下错误消息
gcloud components update
Traceback (most recent call last):
File "/home/mani/Downloads/google-cloud-sdk/lib/gcloud.py", line 104, in <module>
main()
File "/home/mani/Downloads/google-cloud-sdk/lib/gcloud.py", line 62, in main
from googlecloudsdk.core.util import encoding
File "/home/mani/Downloads/google-cloud-sdk/lib/googlecloudsdk/__init__.py", line 23, in <module>
from googlecloudsdk.core.util import importing
File "/home/mani/Downloads/google-cloud-sdk/lib/googlecloudsdk/core/util/importing.py", line 23, in <module>
import imp
File "/usr/lib/python3.9/imp.py", line 23, in <module>
from importlib import util
File "/usr/lib/python3.9/importlib/util.py", line 2, in <module>
from . import abc
File "/usr/lib/python3.9/importlib/abc.py", line 17, in <module>
from typing import Protocol, runtime_checkable
File "/usr/lib/python3.9/typing.py", line 26, in <module>
import re as stdlib_re # Avoid confusion with the re we export.
File "/usr/lib/python3.9/re.py", line 124, in <module>
import enum
File "/home/mani/Downloads/google-cloud-sdk/lib/third_party/enum/__init__.py", line 26, in <module>
spec = importlib.util.find_spec('enum')
AttributeError: module 'importlib' has no attribute 'util'
在网上查看后,我发现问题可能是这个版本的gcloud
不支持python3.9,建议的解决方案是运行gcloud components update
,但也会出现同样的错误。有没有办法恢复或让命令使用旧的python版本来升级自己,然后返回到新的python 3.9?
根据以下GCP官方文档,您可以通过删除主目录将云外壳虚拟机恢复到原始状态,如下所示:
ls -a $HOME
sudo rm -rf $HOME
现在,在云外壳中单击三点菜单并重新启动虚拟机将创建一个新的虚拟机,主目录将恢复为默认状态。
由于您在本地机器中存在此问题,经过研究,我注意到以下PIT1是Google issue Tracker中的一个错误。目前在以下线程上没有几个WA,您可以相应地应用它。
还有另一个PIT2作为Feature请求来添加对python 3.9的支持。如果您对该问题有任何其他意见或担忧,请随时在那里发帖。
在github中找到的另一个WA可能对您的用例有用。