[PYTHON] J'obtiens une UnicodeDecodeError lors de l'exécution avec mod_wsgi

Aperçu

Problème d'exécution du code Python pour lire les fichiers. Lors de l'exécution d'Apache avec mod_wsgi, cela fonctionnait normalement dans le terminal, mais lors de l'exécution avec Apache, j'ai rencontré ʻUnicodeDecodeError`. En conséquence, la définition des paramètres régionaux était un problème. J'y suis un peu accro, alors je vais le laisser comme un mémorandum. (Comme il fonctionne sur Apache d'Ubuntu, la structure des répertoires, etc. sera légèrement différente s'il s'agit d'un système RHEL.)

contenu de l'erreur

[Thu Jul 06 10:50:28.381851 2017] [wsgi:error] [pid 6935] [hogehoge]     for line in fin:
[Thu Jul 06 10:50:28.381858 2017] [wsgi:error] [pid 6935] [hogehoge]   File "/usr/path/to/python/encodings/ascii.py", line 26, i
n decode
[Thu Jul 06 10:50:28.381862 2017] [wsgi:error] [pid 6935] [hogehoge]     return codecs.ascii_decode(input, self.errors)[0]
[Thu Jul 06 10:50:28.381882 2017] [wsgi:error] [pid 6935] [hogehoge] UnicodeDecodeError: 'ascii' codec can't decode byte 0xe7 in position 0: ordinal not i
n range(128)

De cette façon, comme «for line in fin», ce qui est souvent fait en Python, une erreur se produit simplement en essayant de lire un fichier dans lequel le japonais est écrit. Puisque l'erreur est ʻUnicodeDecodeError`, vous pouvez voir qu'il semble y avoir de la mousse autour du code de caractère.

Contre-mesures

Cela était dû aux paramètres Apache. Le système est LANG =" en_US.UTF-8 ", qui est appliqué lors du débogage dans le terminal. Lors de l'exécution sur Apache, les paramètres de variable d'environnement décrits dans / etc / apache2 / envvars sont appliqués. Dans ce cas, ʻexport LANG = Ca été défini ici. Si vous alignez cela avec ce qui précède et définissez ʻexport LANG = "en_US.UTF-8", cela fonctionne (le commentaire dit que ʻexport LANG va à read / etc / default / locale`. Cela n'a pas bien fonctionné.)

Autre

Ce que j'ai vérifié --ʻImport sys; sys.getdefaultencoding () `vérifie si c'est utf-8

Recommended Posts

J'obtiens une UnicodeDecodeError lors de l'exécution avec mod_wsgi
J'obtiens un UnicodeDecodeError en essayant de me connecter à oracle avec python sqlalchemy
J'obtiens un UnicodeDecodeError avec mecab-python3
Un mémorandum lors de l'acquisition automatique avec du sélénium
Quand j'obtiens une erreur de pilote chrome dans Selenium
J'obtiens une erreur du système d'exploitation: [Errno 8] Erreur de format d'exécution lors de l'exécution d'une application Flask avec une commande python
Une note à laquelle j'étais accro lors de l'exécution de Python avec Visual Studio Code
J'obtiens une exception java.util.regex.PatternSyntaxException lors du fractionnement d'une chaîne dans PySpark
J'ai un UnicodeDecodeError lorsque je pip installé sur ubuntu
Une histoire qui a trébuché lorsque j'ai créé un bot de chat avec Transformer
J'ai eu une erreur de valeur lors de l'utilisation de JUMAN ++ avec PyKNP
J'ai essayé de commencer avec Hy ・ Définir une classe
J'obtiens une KeyError dans pyclustering.xmeans
J'ai fait une loterie avec Python.
J'ai essayé d'exécuter prolog avec python 3.8.2.
J'ai créé un démon avec Python
[Python] Un mémo que j'ai essayé de démarrer avec asyncio
J'ai écrit un script pour vous aider à démarrer avec AtCoder à grande vitesse!
Quand j'obtiens une erreur avec Pylint sur Windows Atom
J'obtiens une erreur en essayant d'installer maec 4.0.1.0 avec pip
Que faire si vous obtenez une erreur de décodage Unicode avec l'installation de pip
Une note à laquelle j'étais accro lors de la création d'une table avec SQL Alchemy
Si vous êtes en colère contre "trop peu de mises à jour ~" lors de l'exécution de LdaModel
J'obtiens un attribut impossible à définir lors de l'utilisation de @property en python
J'obtiens une erreur avec les pandas d'importation.
Je veux me mettre en colère contre ma mère quand la mémoire est serrée
Spécifiez les options lors de l'exécution de flake8 avec flycheck
J'ai essayé de commencer avec Hy
J'ai fait un compteur de caractères avec Python
J'ai dessiné une carte thermique avec Seaborn [Python]
Obtenez un environnement local pour DynamoDB avec Docker
J'ai essayé un langage fonctionnel avec Python
Une solution de contournement lors de l'installation de pyAudio avec pip.
Ce que j'ai fait avec les tableaux Python
J'obtiens une erreur Python No module nommée'encodings 'avec la commande aws
Un rappel de ce que je suis resté coincé lors du démarrage d'Atcoder avec python
J'ai fait une carte hexadécimale avec Python
J'ai fait un jeu de vie avec Numpy
J'ai fait un générateur Hanko avec GAN
J'ai fait un jeu rogue-like avec Python
Soyez prudent lorsque vous exécutez CakePHP3 avec PHP7.2
J'ai fait un simple blackjack avec Python
J'ai créé un fichier de configuration avec Python
J'ai fait une application WEB avec Django
J'ai fait un simulateur de neurones avec Python
Dans le tutoriel Chainer, j'obtiens une erreur lors de l'importation d'un package. (moquer)
J'ai été en vain parce que je n'ai pas pu obtenir de commande parent avec pybitflyer
Quand j'ai essayé de créer un environnement virtuel avec Python, cela n'a pas fonctionné
Une fenêtre étrange apparaît lors de l'utilisation de la boîte de dialogue Ouvrir le répertoire dans Tkinter
Lorsque je me suis connecté à un serveur Jupyter distant avec VScode, il était distant mais local.
Si vous obtenez une longue erreur lors de la tabulation d'un shell interactif avec Anaconda
Une histoire à laquelle j'étais accro après la communication SFTP avec python
J'ai fait un robot de remplacement de tampon avec une ligne
J'ai eu une erreur lors de l'enregistrement avec OpenCV
[Python] Récupérez les fichiers dans le dossier avec Python
J'ai fait une prévision météo de type bot avec Python.
Obtenez un billet pour un parc à thème avec python