質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.34%

  • Python 2.7

    1340questions

    Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

  • Flask

    248questions

    FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

  • Google App Engine

    136questions

    Google App Engineは、Googleの管理するデータセンター上でウェブアプリケーションの開発が可能なクラウドコンピュータ技術です。Java、Python、Go用にSDKが用意されています。

FlaskのアプリをGAEにデプロイするときにUnicodeDecodeErrorが発生します。

受付中

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 358

ajie4jpq

score 2

 Flaskで作ったアプリをGoogle App Engineに公開したいのですが、デプロイするときにUnicodeDecodeErrorが発生します。

OSはWindows8.1です。Python2.7をインストールしたのですが、Anacondaが入っているので、それが関係しているかもしれないと思い、いろいろとインターネットで調べてはみたのですが、解決策が見つかりませんでした。

 エラーメッセージ

Beginning deployment of service [default]...                                                                           
Some files were skipped. Pass --verbosity=info to see which ones.                                                    
You may also view the gcloud log file, found at                                                                        
[C:\Users\{user}\AppData\Roaming\gcloud\logs\2018.04.27\19.36.44.307000.log].                                        
Traceback (most recent call last):                                                                                     
File "C:\Python27\lib\logging\init.py", line 861, in emit                                                        
msg = self.format(record)                                                                                          
File "C:\Python27\lib\logging\init.py", line 734, in format                                                      
return fmt.format(record)                                                                                          
File "C:\Users\{user}\AppData\Local\Google\Cloud SDK\google-cloud-sdk\lib\googlecloudsdk\core\log.py", line 325, in
rmat                                                                                                                   
msg = super(_LogFileFormatter, self).format(record)                                                                
File "C:\Python27\lib\logging\init.py", line 465, in format                                                      
record.message = record.getMessage()                                                                               
File "C:\Python27\lib\logging\init.py", line 329, in getMessage                                                  
msg = msg % self.args                                                                                              
UnicodeDecodeError: 'utf8' codec can't decode byte 0x8e in position 10: invalid start byte                    

 試したこと

① コマンドプロンプトを起動。
② cd C:\Python27\Scripts
③ pip2.7 install virtualenv
④ 他のディレクトリに移動し、そこにWebAppというディレクトリを作成。
⑤ cd WebApp
⑥ py -2 -m virtualenv env
⑦ env\Scripts\activate
⑧ app.yaml、appengine_config.py、main.py、requirements.txtはWebApp内に用意しました。
⑨ ローカル上でアプリを動かすことはできました。
⑩ その後、gcloud app deployとコマンドで打ち込んでみたところ、上のエラーが出ました。

 

解決方法を教えていただけたら、幸いです。よろしくお願いいたします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

+1

昔GAEをよく利用していました。

作成した.pyファイルのに日本語が入っていないでしょうか?

以下訂正します (一部削除と訂正しました 午後10時過ぎ)
コメント欄に書きます。


コーデックエラーですね。失礼しました。昔はなかった気が?
文字列操作でエラーですね。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/04/27 21:58

    kawakawa2018さん、回答ありがとうございます。

    main.pyの内容は下の通りです。⇓

    from flask import Flask

    app = Flask(__name__)

    @app.route('/')
    def index():
    return 'Hello World'

    if __name__ == '__main__':
    app.run()

    文字コードはutf-8です。試しに# -*- coding: utf-8 -*-を先頭行につけたり、
    import sys
    stdin = sys.stdin
    stdout = sys.stdout
    sys.setdefaultencoding('utf-8')
    sys.stdin = stdin
    sys.stdout = stdout
    を最初の行の前に付けてみたのですが、うまくいきませんでした。

    キャンセル

  • 2018/04/27 22:41

    ついバージョン2.xで多かった
    日本語の表示問題とおもって即答しました。すみませんでした。

    こちら
    http://www.utf8-chartable.de/unicode-utf8-table.pl?=512&utf8=0x

    で検索しましたが 該当なしですね。
    (2BYTE領域だとフランス語があるが)

    キャンセル

0

Google App Engineのダッシュボードを見てみたら、アプリケーションエラーのところに、ImportError: No module named sslとなっていたので、「google app engine ImportError: No module named ssl」
で検索したところ、
“ImportError: No module named _ssl” with dev_appserver.py from Google App Engine のサイトが出てきたので、app.yamlのファイルに

libraries:
- name: ssl
  version: latest


を付け加えてみて、もう一度WebAppをカレントディレクトリにして、
① env\Scripts\activate
② gcloud app deploy

としてみたら、UnicodeDecodeError: 'utf8' codec can't decode byte 0x8e in position 10: invalid start byteのエラーは変わらなかったのですが、その後、gcloud app browseと打ち込んでみたところ、なぜかはわからないのですが、正常にHello Worldの文字がブラウザ上で表示されました。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

同じタグがついた質問を見る

  • Python 2.7

    1340questions

    Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

  • Flask

    248questions

    FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

  • Google App Engine

    136questions

    Google App Engineは、Googleの管理するデータセンター上でウェブアプリケーションの開発が可能なクラウドコンピュータ技術です。Java、Python、Go用にSDKが用意されています。