GAEのサービスがデプロイできなかったときの話

(ほかの記事をご覧になって、えっ「ぱいそんとともだちになりたい」とか言ってる人が??GAE???とか思われるかもしれませんが、間違いなくぐーぐるあっぷえんじんの話です。分不相応な仕事をしています。)

結論

requirements.txtの文字コードがUTF-16だった。
UTFー8に直したら通った。

症状

「GAEにアプリをデプロイしようとした。アップロードは通ったが、文字コードのエラーでサービスのアップデートが止まった」
という状態。

テストアプリのデプロイは通ったのに、本番アプリをデプロイしようとしたら、「Unicodeはウニャウニャ(ウニャウニャのあたりはよくわからない)の文字をデコード出来なかったよぉ」と言われて、アップロードこそできたもののサービスのアップデートが止まりました。

対処

エラーメッセージ内にrequirementsに入ってるモジュールのバージョンを確認してちょ、みたいなことが書いてあったので開いてみたら、文字コードがUTF16だった。(モジュールのバージョンは関係なかった)
直してみたら通った。解決!

そもそも何でUTF16になってたの?

requirements.txtを、手書きじゃなくてpip freezeで書き出していたからだと思う。
かといって手書きするのはバージョン管理とかの視点であんまりしたくないし、書き出した後文字コードの確認を忘れない、がベターだろうか。
書き出しの時に文字コード指定できるのかな?(できるとしても忘れそうだけど…)

この記事が気に入ったらサポートをしてみませんか?