
在最近幾個月沒有出現任何問題後,我突然無法在 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 停止工作後,已經提交了一個錯誤。已提交問題Google雲以及。您現在可以追蹤這兩個連結。
目前,我們可以執行一些解決方法:
- 放
$PSNativeCommandArgumentPassing = "Legacy"
,有關此鏈接的更多信息偏好變數 - 使用PowerShell 7.2
如果您有疑問或需要澄清,請告訴我。
答案2
自從第一個答案被接受以來,門票已進行了多次更新,網址為Google雲和吉圖布。該問題已在 gcloud SDK 版本 413.0.0 中修復。如果您正在執行的版本早於該版本,則可以手動執行修復。首先,使用此命令取得 gcloud.ps1 的位置:
Get-Command gcloud | Select-Object Source
接下來,編輯該文件。第 109 行左右或在第 109 行將是以下文字:
$run_args_array += $cloudsdk_python_args.split(' ')
將此行完全替換為:
$run_args_array += $cloudsdk_python_args.split(' ', [StringSplitOptions]::RemoveEmptyEntries)
這是版本 413.0.0 中的修復,因此 gcloud 將在該版本之後運行。我建議在此之後的第一次調用是gcloud components update
.
(小時/噸至GitHub 上的這則評論對於上述步驟)