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

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

新規登録して質問してみよう
ただいま回答率
85.47%
Flask

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

Google App Engine

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

Python 2.7

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

Q&A

2回答

466閲覧

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

ajie4jpq

総合スコア6

Flask

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

Google App Engine

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

Python 2.7

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

0グッド

0クリップ

投稿2018/04/27 11:10

編集2018/04/27 13:04

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とコマンドで打ち込んでみたところ、上のエラーが出ました。

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

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

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

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


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

投稿2018/04/27 11:30

編集2018/04/27 13:25
kawakawa2018

総合スコア1195

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ajie4jpq

2018/04/27 12: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 を最初の行の前に付けてみたのですが、うまくいきませんでした。
guest

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の文字がブラウザ上で表示されました。

投稿2018/04/28 05:13

編集2018/04/28 05:16
ajie4jpq

総合スコア6

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問