由于 Python 问题,无法在 Windows + Powershell 7 上运行 Google Cloud SDK CLI

由于 Python 问题,无法在 Windows + Powershell 7 上运行 Google Cloud SDK CLI

最近,在几个月没有出现问题之后,我突然无法在 Windows Terminal / PowerShell 7 (7.3) 中运行 Google Cloud SDK CLI / gcloud 命令。

我收到的错误是:

>gcloud
C:\Users\admin10lap\AppData\Local\Programs\Python\Python39\python.exe: can't find '__main__' module in ''

这种情况似乎会在 Google Cloud SDK 安装程序中捆绑和不捆绑 python 选项的情况下发生(因为我已多次尝试重新安装 Google Cloud SDK)。

奇怪的是,当使用 PowerShell 5.x 或 CMD 提示符时我没有收到此错误,并且 gcp SDK CLI 在这些实例中运行良好。

PowerShell 7 已经成为我的日常驱动程序,因为它与 Windows 终端结合使用时提供了增强功能和自定义功能,所以我迫切希望它再次运行。

我对如何解决这个特定问题有点不了解,如果有人知道是什么原因导致 PowerShell 7 抛出这个 Python 错误,我将非常感谢您的反馈。

谢谢。

答案1

经过检查,我发现了这个Github 问题链接在将 PowerShell 更新至 7.3 后,gcloud 停止工作,因此已提交了一个错误。已提交一个问题谷歌云也一样。您现在可以跟踪这两个链接。

目前,我们可以采取一些解决方法:

如果您有任何问题或需要澄清,请告诉我。

答案2

自第一个答案被接受以来,谷歌云Github。此问题已在 gcloud SDK 版本 413.0.0 中按照前者进行修复。如果您运行的是比此版本更早的版本,则可以手动执行修复。首先,使用此命令获取 gcloud.ps1 的位置:

Get-Command gcloud | Select-Object Source

接下来,编辑该文件。第 109 行左右会有以下文本:

$run_args_array += $cloudsdk_python_args.split(' ')

用下面的代码替换该行:

$run_args_array += $cloudsdk_python_args.split(' ', [StringSplitOptions]::RemoveEmptyEntries)

这是 413.0.0 版的修复,因此 gcloud 将在此后运行。我建议此后的第一次调用为gcloud components update

(h/t至GitHub 上的此评论(针对上述步骤)

相关内容