[Python-3000] setup.py fails in the py3k-struni branch

Guido van Rossum guido at python.org
Fri Jun 8 01:54:40 CEST 2007


On 6/7/07, Ron Adam <rrr at ronadam.com> wrote:
> 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. (?)

Indeed -- care to contribute a patch?

-- 
--Guido van Rossum (home page: http://www.python.org/~guido/)


More information about the Python-3000 mailing list