2009-08-11 6 views
15

다음 Python 코드는 Windows 컴퓨터 (Python 2.5.4)에서 작동하지만 Debian 컴퓨터 (Python 2.5.0)에서는 작동하지 않습니다. 나는 그것이 OS 의존적이라고 추측하고있다.Python에서 사용할 OS 로켈 지원

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/lib/python2.5/locale.py", line 476, in setlocale 
    return _setlocale(category, locale) 
locale.Error: unsupported locale setting 

질문 :이 OS에 의존

  • import locale 
    locale.setlocale(locale.LC_ALL, 'English_United States.1252') 
    

    나는 다음과 같은 오류가 발생?

  • 파이썬 내에서 지원되는 로케일 을 어떻게 찾을 수 있습니까?
  • Windows 로켈과 데비안 로켈을 어떻게 일치시킬 수 있습니까?
+3

로케일을 하드 코딩해야합니까? setlocale (LC_ALL, "")은 환경에 정의 된 로켈을로드합니다. – u0b34a0f6ae

답변

21

OS에 따라 다릅니다.

당신이 쉘

내가 원하는 지역을 생각에 locale -a을 사용할 수있는 사용 가능한 지역의 목록을 가져올 수 locale.locale_alias 사전 내부 Windows-1252

+7

Windows에 로케일이 없음 - – hwjp

+0

올바른 로케일을 식별하는 데 도움이되었습니다. – Cacovsky

8

봐 같은 것입니다.

>>> import locale 
>>> len(locale.locale_alias) 
789 
>>> locale.locale_alias.keys()[:5] 
['ko_kr.euc', 'is_is', 'ja_jp.mscode', '[email protected]', 'yi_us.cp1255'] 
>>> 

(제 2.6.2 설치에서 789 개 로케일 이름이 있습니다.)

+5

실제로 별칭 사전에 정의 된 로캘이 반드시 지원되는 것은 아닙니다. – krawyoti

+0

나는 실제 값을 원하기 때문에 키 대신에 값 (set (locale.locale_alias.values ​​()) (set)과 목록으로 다시 변환하여 고유 한 값만 유지합니다. 문제, 여기 제기 (http://stackoverflow.com/questions/1728376/python-get-a-list-of-all-the-encodings-python-can-encode-to/1736533#1736533) : loces가 있습니까? 별칭이 없으며 별칭 사전에 전혀 없습니다. – metamatt

9

나를 위해

apt-get install locales-all 

시도는 우분투 정확한 유형에 매력

+0

로케일을 선택적으로 구성하려는 경우에도 유용합니다. http://tlug.dnho.net/node/237 –

+2

원하는 경우 좀 더 선택적으로 language-pack- * 패키지 중 하나를 설치할 수 있습니다. 예 : language-pack-de –

+0

yum 설치가 무엇인지 알고 계십니까? yum install locales-all doesnt work. – timh

1

처럼 작동

sudo locale-gen en_US

관련 문제