Martin v. Löwis wrote:
> FWIW, for me the build error goes away when I unset
> LANG, so that the error occurs during build definitely
> *is* a locale issue.
Yes, and to pin it down a bit further...
This avoids the problem by setting the language to the default "C" which is
a unicode string and has a .split method that accepts 0 args.
Also LANG is 4th on the list of possible language setting sources, so if
one of the other 3 environment variables is set, setting or unsetting LANG
will have no effect.
--- From gettext.py ---
# Locate a .mo file using the gettext strategy
def find(domain, localedir=None, languages=None, all=0):
# Get some reasonable defaults for arguments that were not supplied
if localedir is None:
localedir = _default_localedir
if languages is None:
languages = []
for envar in ('LANGUAGE', 'LC_ALL', 'LC_MESSAGES', 'LANG'):
# ^^^ first one is accepted.
val = os.environ.get(envar) #<<< should return unicode?
if val:
languages = val.split(':')
break
if 'C' not in languages:
languages.append('C') # <<< unicode 'C'
# now normalize and expand the languages
nelangs = []
for lang in languages:
for nelang in _expand_lang(lang): #<<< error in this call
# when it's normalized.
if nelang not in nelangs:
nelangs.append(nelang)
------
Guido's patch avoids this, but that fix was also needed as unicode
translate works differently than str.translate.
The os.environ.get() method probably should return a unicode string. (?)
Ron
_______________________________________________
Python-3000 mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-3000
Unsubscribe:
http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com