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

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

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

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

UTF-8

UTF-8は8ビット符号単位の文字符号化形式及び文字符号化スキームです。データ交換方式、ファイル形式としては、一般的にUTF-8が使われる傾向があります。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

5回答

1789閲覧

pythonのflaskについて

law

総合スコア12

Flask

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

UTF-8

UTF-8は8ビット符号単位の文字符号化形式及び文字符号化スキームです。データ交換方式、ファイル形式としては、一般的にUTF-8が使われる傾向があります。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/07/29 10:18

編集2020/07/29 15:02

flaskのもっとも簡単なプログラムを実行しようとしたのですが、エラーが出ます。
プログラムは

python

1from flask import Flask 2app = Flask(__name__) 3 4@app.route('/') 5 6def hello_world(): 7 return 'Hello, World!' 8 9if __name__ == "__main__": 10 app.run()

で実行したところ、
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x83 in position 0: invalid start byte
という表示が出ました。
原因と解決方法を教えてください。
python3.8.3dで、osはwindows10,hello_flask.pyというファイルを作成しvscodeで実行しました。
実行結果です。

error

1 2PS C:\Users\programming\python> & C:/Users/AppData/Local/Programs/Python/Python38/python.exe c:/Users/programming/python/hello_flask.py 3* Serving Flask app "hello_flask" (lazy loading) 4* Environment: production 5WARNING: This is a development server. Do not use it in a production deployment. 6Use a production WSGI server instead. 7* Debug mode: off 8Traceback (most recent call last): 9File "c:/Users/programming/python/hello_flask.py", line 10, in <module> 10app.run() 11File "C:\Users\AppData\Local\Programs\Python\Python38\lib\site-packages\flask\app.py", line 990, in run 12run_simple(host, port, self, **options) 13File "C:\Users\AppData\Local\Programs\Python\Python38\lib\site-packages\werkzeug\serving.py", line 1052, in run_simple 14inner() 15File "C:\Users\AppData\Local\Programs\Python\Python38\lib\site-packages\werkzeug\serving.py", line 996, in inner 16srv = make_server( 17File "C:\Users\AppData\Local\Programs\Python\Python38\lib\site-packages\werkzeug\serving.py", line 847, in make_server 18return ThreadedWSGIServer( 19File "C:\Users\AppData\Local\Programs\Python\Python38\lib\site-packages\werkzeug\serving.py", line 740, in __init__ 20HTTPServer.__init__(self, server_address, handler) 21File "C:\Users\AppData\Local\Programs\Python\Python38\lib\socketserver.py", line 452, in __init__ 22self.server_bind() 23File "C:\Users\AppData\Local\Programs\Python\Python38\lib\http\server.py", line 140, in server_bind 24self.server_name = socket.getfqdn(host) 25File "C:\Users\AppData\Local\Programs\Python\Python38\lib\socket.py", line 756, in getfqdn 26hostname, aliases, ipaddrs = gethostbyaddr(name) 27UnicodeDecodeError: 'utf-8' codec can't decode byte 0x83 in position 0: invalid start byte

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

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

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

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

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

can110

2020/07/29 11:12

提示コードをhello_flask.pyというファイルを作成して保存しvscodeで実行しましたがエラーは発生しませんでした。hello_flask.pyを新規で作成しなおしてみてください。
law

2020/07/29 11:31

ファイルを削除し同じ内容のファイルを作成しましたが結果は変わりませんでした。 ほかに解決策はありますか。
can110

2020/07/29 11:33

こちらでは再現しない(正常に動作する)ので分かりません。
TakaiY

2020/07/29 13:39

エラーの内容は、UTF-8に含まれない数値(データ)、この場合は「0x83」が 一番初めに出てきたと言っています。 ファイルはBOM無しUTF-8で保存していますか? vscodeで作成/編集しているのであれば、右下に表示されています。 と言ってはみたものの、日本語が入っていないから変な文字も入りそうにないので、ちょっと悩ましいですね。 もっと単純な たとえば、 print('hello world')だけのようなものを実行するとどうなりますか? あと、「vscodeで実行」というのは具体的にどのような操作ですか?
Hyugopython

2020/07/29 13:44

vscodeのrun moduleのことかと思われます(VSCで実行するにはそれしかないです) コンソールと同じ扱いなのでそこが問題ではないと思われます。
quickquip

2020/07/29 14:06

> もっと単純な たとえば、 print('hello world')だけのようなものを実行するとどうなりますか? > あと、「vscodeで実行」というのは具体的にどのような操作ですか? に賛同です。そこが最初のポイントだと思います。
law

2020/07/29 14:23

ほかのプログラムは正常に動作します。 操作は右上のターミナルでpython ファイルを実行と書いてあるのと、コマンドラインで試しました。
TakaiY

2020/07/29 14:32

ここで気になったのですが、出ているエラーメッセージをすべて載せていただけますか? この1行だけではないですよね?
law

2020/07/29 14:59 編集

質問のほうに移しました
quickquip

2020/07/29 14:53 編集

これは質問に書いてください。ここは"質問への追記・修正の依頼"欄ですので。
TakaiY

2020/07/29 14:55 編集

あー、やはり、ソースコードの文字コードの問題ではなかったようですね。 質問を編集してこの情報を本文に載せておくと、多くの人の目に止まると思います。 パッと見ただけではわかららないのですが、ホスト名などのネットワークに関連するID/名前に日本語、しかもSJISの、使っていますか?
guest

回答5

0

ベストアンサー

https://bugs.python.org/issue26227

ですね。

マシン名にnon-ASCII文字(今の場合は日本語)が入っているとsocket.gethostbyaddr関数のエラーでPythonが落ちます。
Pythonの修正がまだなので、マシン名から日本語を取り除く以外の手段は今はなさそうです。

https://teratail.com/questions/247570
https://teratail.com/questions/255684

投稿2020/07/29 14:59

quickquip

総合スコア11038

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

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

0

追記いただいた、ログの情報から、検索してみたところ、ほとんど同じ内容の問題にあたった方の情報がありましたので、リンクを貼っておきます。

たぶん、原因はホスト名が日本語などで、SJIS であることが原因だと思われます。

Python Bottle で UnicodeDecodeError が発生したときに確認した方がいいことと、回避方法

投稿2020/07/29 15:03

TakaiY

総合スコア12741

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

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

0

pcの名前がカタカナだったのが原因のようです。
無事解決しました。
回答してくださった方々に感謝です。
皆様ありがとうございました。

投稿2020/07/29 15:11

law

総合スコア12

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

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

0

description

ファイルを右クリックして、プログラムから開く>メモ帳
ファイル>名前を付けて保存
を押すと上の画像が出てくると思います

以下のように文字コードをUTF-8にして、保存し、実行してみてください。

ファイルの名前は変えずに、既に存在しますと出ても上書きをしてください。

投稿2020/07/29 14:32

Hyugopython

総合スコア148

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

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

law

2020/07/29 14:39

画像通りにしましたが変化なしです。 もともとutf-8になってました。
guest

0

これはおそらく、ファイルの文字コードがutf-8に変換できなかったのでしょう。

pythonのファイルの1行目に以下を記載してみてください

# -*- coding: utf-8 -*-
コメントアウトされたままで大丈夫です。

これに関してはこちらをお読みください
https://qiita.com/KEINOS/items/6efc1147b917d7811b5b

投稿2020/07/29 13:42

Hyugopython

総合スコア148

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

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

law

2020/07/29 14:13

試してみましたが効果なしです。申し訳ない
Hyugopython

2020/07/29 14:17

Shift-JSでコーディングしてるかと思われます。UTF-8に再コーティングしてみてください。
quickquip

2020/07/29 14:30

このファイル内容ならShift-JISで保存しようとUTF-8で保存しようと、バイナリ上同じになるはずでは? (ASCIIの範囲の文字しかない)
Hyugopython

2020/07/29 14:38

このエラーが出ている限り、文字コードがutf-8になっていないとみたので、バイナリ上同じになろうが、utf-8へ統一しようと考えています
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問