Locale.Error: Python でサポートされていないロケール設定
-
Python の
Locale
モジュールとは -
Python の
locale.Error: サポートされていないロケール設定
とは -
Python で
locale.Error: unsupported locale setting
を修正する方法 -
locale.Error: unsupported locale setting
をexport
コマンドで修正する -
端末から
locale.Error: unsupported locale setting
を修正する -
Locale
モジュールに利用可能なすべての言語を登録する
Python は、目的のタスクを効率的に達成できるようにする多くのライブラリとフレームワークを備えた、多様で強力なプログラミング言語です。
開発者の面倒を見るという点では、常に Python がトップです。 これは、開発者が文化的な障壁に直面することなくソフトウェアを一般化するのに役立つ有名なモジュールの 1つであり、そのモジュールは Locale
です。
Python の Locale
モジュールとは
説明したように、locale
モジュールは、開発者がソフトウェアの特定の文化的問題に対処できるようにするために開発されました。
それでは、Locale
モジュールを調べて、このモジュールを初めて使用するときに遭遇する最も一般的なエラーの 1つである locale.Error: unsupported locale setting
を修正してみましょう。
エラーの詳細に入る前に、locale
モジュールとは何か、それをインポートする方法、およびこのモジュールで他に何が必要かを見てみましょう。
コード例:
import locale
# get the current locale
print(locale.getlocale())
出力:
('English_United States', '1252')
この例では、English_United States.1252
が優先ロケールとして設定されています。 基本的に、それは設定に依存します。 マシンに別の優先ロケールがある場合があります。
ただし、setlocale()
関数を使用して、使用可能なリストからデフォルトのロケールを好みのロケールに変更できます。
locale.setlocale(locale.LC_ALL, "German")
出力:
'German_Germany.1252'
Python の locale.Error: サポートされていないロケール設定
とは
Python では、locale
モジュールを初めて使用すると、ある時点で locale.Error: unsupported locale setting
に遭遇することがあります。 その背後にある理由は、locale
モジュールを適切にインストールしていなかったか、指定したパラメーターに問題があったことです。
locale.Error: サポートされていないロケール設定
をよりよく理解するための例を見てみましょう。
import locale
print(str(locale.getlocale()))
locale.setlocale(locale.LC_ALL, "de_DE")
出力:
locale.Error: unsupported locale setting
このエラーの主な原因は、環境変数 LC_ALL
が見つからないか無効であることです。 この場合、de_DE
がないため、エラー locale.Error: unsupported locale setting
が発生します。
Python で locale.Error: unsupported locale setting
を修正する方法
上記のコードで見たように、ロケール エラーが発生しました。その理由は、環境変数が欠落しているか、指定された変数が無効であったためです。 それを修正するには、複数の解決策があります。 一つ一つ解説していますので、それぞれを確認してlocale.Error: unsupported locale setting
を修正してください。
環境変数の設定から始めましょう。 これを行うには、端末に移動して次のコマンドを入力します。
locale.Error: unsupported locale setting
を export
コマンドで修正する
export LC_ALL="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
sudo dpkg-reconfigure locales
1 行のコードで実行することもできます。 どちらも同じように機能します。
export LC_ALL="en_US.UTF-8" & export LC_CTYPE="en_US.UTF-8" & sudo dpkg-reconfigure locales
上記のコマンドでは、LC_ALL
と LC_CTYPE
を使用して環境変数を設定し、最後のコマンド sudo dpkg-reconfigure locales
を使用して変更をシステムにコミットします。
端末から locale.Error: unsupported locale setting
を修正する
それでもうまくいかない場合は、端末から locale
を再インストールしてみてください。
sudo apt-get install locales -y
上記のコマンドは locale
をインストールします。 locale-gen
コマンドでロケールのリストを生成します。
sudo locale-gen en_US.UTF-8
最後に、構成をシステムに永続的に設定します。
sudo echo "LANG=en_US.UTF-8" > /etc/default/locale
上記のコマンドを実行すると、マシンを再起動するように求められる場合があります。 再起動できるようにする必要があります。
Locale
モジュールに利用可能なすべての言語を登録する
以下のコマンドまたは Python プログラムを実行して、特定の locale
がロケール リストに存在することを確認できます。
$ locale -a
以下は、利用可能なロケールの リスト を表示する Python プログラムです。
import locale
for language in locale.windows_locale.values():
print(language, end=", ")
出力:
af_ZA, sq_AL, gsw_FR, am_ET, de_DE, de_CH, ....., sah_RU, ii_CN, yo_NG, zu_ZA
上記のプログラムは、利用可能なロケール言語のリストをループし、出力に示されているようにそれぞれを出力します。 これで、リストで使用可能なものを選択してプログラムに配置して、適切に機能する出力を確認できます。
コード例:
import locale
print(str(locale.getlocale()))
locale.setlocale(locale.LC_ALL, "de_DE")
出力:
('de_DE', 'UTF-8')
'de_DE'
完全! ご覧のとおり、完全に機能しています。 スムーズに動作しているため、ロケール言語を de_DE
に設定しました。
上記の例に示すように、ローカル言語のリストに de_DE
が存在し、ドイツ語を表していることを思い出してください。
Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.
LinkedIn関連記事 - Python Error
- AttributeError の解決: 'list' オブジェクト属性 'append' は読み取り専用です
- AttributeError の解決: Python で 'Nonetype' オブジェクトに属性 'Group' がありません
- AttributeError: 'generator' オブジェクトに Python の 'next' 属性がありません
- AttributeError: 'numpy.ndarray' オブジェクトに Python の 'Append' 属性がありません
- AttributeError: Int オブジェクトに属性がありません
- AttributeError: Python で 'Dict' オブジェクトに属性 'Append' がありません