uWSGIエンコード問題の解決方法を詳しく解説
最近、Flaskで書いたアプリケーションをSupervisor+uWSGI経由で公式サーバーにデプロイした際にエラーが発生したので、関連情報を探してようやく解決したので、以下の記事で主にコーディングを紹介していきたいと思います。 uWSGI を解決する 問題に関連する情報については、困っている友人が参照できます。
問題が見つかりました
最近、仕事で Flask で書かれたアプリケーションを Supervisor+uWSGI 経由で公式サーバーにデプロイするときに、次のようなエラーが発生しました:
Unable to print the message and arguments – possible formatting error.
または
UnicodeEncodeError: ‘ascii' codec can't encode characters in position 24-25: ordinal not in range(128)
興味深いはい。 , Python 環境で直接実行する場合、そのようなエラーは発生しません。この方法で uwsgi uwsgi.ini を使用して実行することも通常です。
Unicodeのサポートが不十分なため、Python2ではこの種のエラーがよく発生しますが、私のプログラムはすべてPython3で書かれているため、このようなエラーは二度と発生しないはずです。さらに、すべての Python ファイルの最初の行にはエンコーディングが設定されています:
# -*- coding: utf-8 -*-
私の環境は次のとおりです:
Ubuntu 16.04.1 LTS
Python 3.5.2
uWSGI 2 . 0 .14 (in python3 pip)
Supervisor 3.3.1 (in python2 pip)
uwsgi.ini 設定ファイルの内容は次のとおりです:
[uwsgi] master = true wsgi-file = manage.py callable = app processes = 2 threads = 2 max-requests = 6000 chmod-socket = 664 uid = app gid = app buffer-size = 32768 venv = {project_dir}/venv ; http = 127.0.0.1:5001 logto = {project_dir}/logs/uwsgi.log
Python を使用するとそのようなエラーは発生しませんと uwsgi を直接接続しているため、環境のエンコード設定が問題の原因であると判断できます。
次のようにサーバーエンコーディングを表示します:
% locale LANG=C LANGUAGE=C: LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL=en_US.UTF-8
LANG および LANGUAGE 環境変数が設定されていないことがわかりました。
これら 2 つの環境変数の値は、uwsgi.ini で設定できます。テストした結果、実際に機能するのは LANGUAGE であることがわかりました。
りー以上がuWSGIエンコード問題の解決方法を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

PythonのPandasライブラリを使用する場合、異なる構造を持つ2つのデータフレーム間で列全体をコピーする方法は一般的な問題です。 2つのデータがあるとします...

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

UvicornはどのようにしてHTTPリクエストを継続的に聞きますか? Uvicornは、ASGIに基づく軽量のWebサーバーです。そのコア機能の1つは、HTTPリクエストを聞いて続行することです...

Pythonでは、文字列を介してオブジェクトを動的に作成し、そのメソッドを呼び出す方法は?これは一般的なプログラミング要件です。特に構成または実行する必要がある場合は...

この記事では、numpy、pandas、matplotlib、scikit-learn、tensorflow、django、flask、and requestsなどの人気のあるPythonライブラリについて説明し、科学的コンピューティング、データ分析、視覚化、機械学習、Web開発、Hの使用について説明します。

正規表現は、プログラミングにおけるパターンマッチングとテキスト操作のための強力なツールであり、さまざまなアプリケーションにわたるテキスト処理の効率を高めます。
