locale.Error: unsupported locale setting 的解決方案
阿新 • • 發佈:2018-11-13
locale.Error: unsupported locale setting
的解決方案
0. 參考資料
https://stackoverflow.com/questions/14547631/python-locale-error-unsupported-locale-setting
1. 報錯原因
在 vagrant
+ virtualbox
上安裝的 ubuntu 16.04
使用 pip3 list
和 python3 -m venv venv
兩條命令均報錯,詳細報錯資訊如下:
[email protected]:~/microblog$ pip3 list
Traceback (most recent call last):
File "/usr/bin/pip3", line 11, in <module>
sys.exit(main())
File "/usr/lib/python3/dist-packages/pip/__init__.py", line 215, in main
locale.setlocale(locale.LC_ALL, '')
File "/usr/lib/python3.5/locale.py", line 594, in setlocale
return _setlocale(category, locale)
locale.Error: unsupported locale setting
原因在於該系統缺少相應的語言包,需要下載安裝才行。
2. 解決方案
使用 locale
檢視當前語言設定:
[email protected]:~$ locale
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=zh_CN.UTF-8
LC_TIME=zh_CN.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=zh_CN.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=zh_CN.UTF-8
LC_NAME=zh_CN.UTF-8
LC_ADDRESS=zh_CN.UTF-8
LC_TELEPHONE=zh_CN.UTF-8
LC_MEASUREMENT=zh_CN.UTF-8
LC_IDENTIFICATION=zh_CN.UTF-8
LC_ALL=
發現該設定中有兩種語言,一種是 en_US.UTF-8
,另一種是 zh_CN.UTF-8
。
使用 locale -a
檢視當前系統所有可用語言:
[email protected]:~$ locale -a
C
C.UTF-8
en_US.utf8
id_ID.utf8
POSIX
發現上面的可用語言中缺少 zh_CN.UTF-8
,這就是報錯原因所在。
使用 sudo apt install language-pack-zh-hans
安裝語言:
[email protected]:~$ sudo apt install language-pack-zh-hans
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
language-pack-zh-hans-base
The following NEW packages will be installed:
language-pack-zh-hans language-pack-zh-hans-base
0 upgraded, 2 newly installed, 0 to remove and 3 not upgraded.
Need to get 2110 kB of archives.
After this operation, 8545 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 language-pack-zh-hans-base all 1:16.04+20160627 [2108 kB]
Get:2 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 language-pack-zh-hans all 1:16.04+20160627 [1870 B]
Fetched 2110 kB in 3s (567 kB/s)
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_TIME = "zh_CN.UTF-8",
LC_MONETARY = "zh_CN.UTF-8",
LC_ADDRESS = "zh_CN.UTF-8",
LC_TELEPHONE = "zh_CN.UTF-8",
LC_NAME = "zh_CN.UTF-8",
LC_MEASUREMENT = "zh_CN.UTF-8",
LC_IDENTIFICATION = "zh_CN.UTF-8",
LC_NUMERIC = "zh_CN.UTF-8",
LC_PAPER = "zh_CN.UTF-8",
LANG = "en_US.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("en_US.UTF-8").
locale: Cannot set LC_ALL to default locale: No such file or directory
Selecting previously unselected package language-pack-zh-hans-base.
(Reading database ... 89747 files and directories currently installed.)
Preparing to unpack .../language-pack-zh-hans-base_1%3a16.04+20160627_all.deb ...
Unpacking language-pack-zh-hans-base (1:16.04+20160627) ...
Selecting previously unselected package language-pack-zh-hans.
Preparing to unpack .../language-pack-zh-hans_1%3a16.04+20160627_all.deb ...
Unpacking language-pack-zh-hans (1:16.04+20160627) ...
Setting up language-pack-zh-hans (1:16.04+20160627) ...
Setting up language-pack-zh-hans-base (1:16.04+20160627) ...
Generating locales (this might take a while)...
zh_CN.UTF-8... done
zh_SG.UTF-8... done
Generation complete.
最後生成了我們需要的 zh_CN.UTF-8
語言。
再次使用 pip3 list
和 python3 -m venv venv
也不會報錯了。