今日、 google cloud sdk
を 190.0.1
にバージョンアップしたら、 goapp cannot import name goroots
というエラーが出た。
再インストールしたりしても直らなかったため備忘録として。
原因
${GCLOUD_SDK_ROOT}/platform/google_appengine/google/appengine/tools
から goroots.py
というスクリプトが消えてた。
対応
過去のバージョンを参考に、下記のスクリプトを追加した。
GOROOTS = {
'go1': 'goroot-1.8',
'go1.6': 'goroot-1.6',
'go1.8': 'goroot-1.8',
}
とりあえずこれで動く。
他にいい対応あるかもしれないし、もしかしたら僕の環境でしか発生しないかもしれないけど、誰か何か知ってたら教えてください。
追記 Google Cloud SDK の goapp コマンドについて
golang/appengine#124 (comment)より
goapp is not supported when run from the gcloud sdk. If you still must use it, please use the legacy SDK by going to https://cloud.google.com/appengine/docs/standard/go/download and clicking "Download and install the original App Engine SDK for Go."
このコメント見る感じ、なんか今後修正されなさそうな気配がするため、今後は goapp
使わない方がいい気がする。
goapp
コマンド使えなくても対して困らない気はするけど、CIとかでテストとかデプロイにgoappコマンド使ってるケースもあると思うので、既存のプロダクトは気をつけた方がよさそう。