
数か月間問題がなかったのに、最近突然、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 行目あたりに次のテキストがあります。
$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のこのコメント上記の手順については