1. ホーム
  2. Python

Python2.7のエンコード問題:UnicodeDecodeError: 'ascii' codec can't decode byte 0xe8 in position... 解決方法

2022-02-20 12:23:15

Ubuntuでsublime text3を使ってPythonプログラムを実行すると、エンコードの問題に遭遇しました: UnicodeDecodeError: 'ascii' codec can't decode byte 0xe8 in position 39: ordinal not in range(128)

この問題は、import matplotlib.pyplot as plt statementで発生します。

この原因は matplotlibライブラリは、現在の sublime text3、コマンドラインでは発生しない。

<スパン 解決策

Pythonプログラムの先頭に以下の記述を追加します。

インポートシステム
再読み込み(sys)
sys.setdefaultencoding('utf-8')

デフォルトエンコーディングを utf-8

<スパン この時点で問題は解決しているのですが、すべてのpyスクリプトにこの文章を追加するのは面倒なので、その時点で問題がある場所にこの3つの文章を追加すればいいのです。

<スパン 例えば、私がインポートするとき matplotlib のエンコードエラーが発生したファイルは、__init__.py として見つかりました。

<スパン <スパン <スパン

これを追加するだけです。 __init__.py ファイルに上記の3行を記述し、後で matplotlibのpyスクリプトは、このエンコーディングの問題はありません。

探す __init__.pyのファイルには、以下の方法でアクセスできます。 このファイルはもちろん他の方法でも見つけることができます。

<イグ

__init__.py.