💭
PowerShell 7.3 で gcloud コマンドの実行に失敗する件の対応
【追記】こちらの内容は Google Cloud CLI version 413.0.0 にて解決済みです。
概要
Windows にて Powershell 7.3.0 が出ていたのでアップデートしたところ、gcloud コマンドを実行すると下記のようなエラーが出る状態になりました。
C:\Users\[user]\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\bundledpython\python.exe: can't find '__main__' module in ''
検索してみたところ、下記の Issue を発見。
解決方法
下記の対応を行ったところ解決したので共有します。
- Powershell にて
Get-Command gcloud | Select-Object Source
を実行して gcloud.ps1 ファイルの場所を確認
Source
------
C:\Users\[user]\AppData\Local\Google\Cloud SDK\google-cloud-sdk\bin\gcloud.ps1
- gcloud.ps1 ファイルを開き、109行目を下記のように書き換える
109行目にある下記の行を
$run_args_array += $cloudsdk_python_args.split(' ')
下記の形に書き換える
(split の引数に , [StringSplitOptions]::RemoveEmptyEntries
を追加する)
$run_args_array += $cloudsdk_python_args.split(' ', [StringSplitOptions]::RemoveEmptyEntries)
以上で gcloud コマンドが問題無く実行できるようになりました。
参考
PowerShell 7.3 では PSNativeCommandArgumentPassing
に関する機能が有効になり、引数で渡される空文字の扱いが変わったことが原因らしいです。
Discussion