Locale.Error: Python でサポートされていないロケール設定

Zeeshan Afridi 2023年12月11日
  1. Python の Locale モジュールとは
  2. Python の locale.Error: サポートされていないロケール設定 とは
  3. Python で locale.Error: unsupported locale setting を修正する方法
  4. locale.Error: unsupported locale settingexport コマンドで修正する
  5. 端末から locale.Error: unsupported locale setting を修正する
  6. Locale モジュールに利用可能なすべての言語を登録する
Locale.Error: Python でサポートされていないロケール設定

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 settingexport コマンドで修正する

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_ALLLC_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 Afridi
Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn

関連記事 - Python Error