2011-01-29 56 views
0

当我的脚本调用Babel函数时,我收到了从Python Babel包中抛出的这个异常。事情是,当我从命令行运行它的作品没关系。但是,这是我从cron运行时得到的错误。看起来它可能与某些环境或区域设置有关或缺乏它。Python:当从cron调用时,为什么从Babel中获得这个异常?

File "/home/myproj/lib/python2.6/Babel-0.9.5-py2.6.egg/babel/dates.py", line 508, in format_datetime 
     return parse_pattern(format).apply(datetime, locale) 
    File "/home/myproj/lib/python2.6/Babel-0.9.5-py2.6.egg/babel/dates.py", line 702, in apply 
     return self % DateTimeFormat(datetime, locale) 
    File "/home/myproj/lib/python2.6/Babel-0.9.5-py2.6.egg/babel/dates.py", line 699, in __mod__ 
     return self.format % other 
    File "/home/myproj/lib/python2.6/Babel-0.9.5-py2.6.egg/babel/dates.py", line 724, in __getitem__ 
     return self.format_month(char, num) 
    File "/home/myproj/lib/python2.6/Babel-0.9.5-py2.6.egg/babel/dates.py", line 793, in format_month 
     return get_month_names(width, context, self.locale)[self.value.month] 
    File "/home/myproj/lib/python2.6/Babel-0.9.5-py2.6.egg/babel/dates.py", line 87, in get_month_names 
     return Locale.parse(locale).months[context][width] 
    AttributeError: 'NoneType' object has no attribute 'months' 

UPDATE

当从命令行区域称为是en_US和从cron无调用时。如何从cron调用它时设置它?

此外,不知道这是否重要,但调用Babel的脚本是一个自定义的django-admin命令。

+0

似乎喜欢它。你可以在引发异常的地方附近放置一个“打印语言环境”,并将它作为你自己和cron运行时打印出本地值? – 2011-01-29 17:11:36

回答

1

由于cron设置的环境变量较少,因此Babel无法检测到缺省语言环境(对于LC_TIME)。

你可以明确地设置这个babel.dates.LC_TIME = Locale.parse('en_US')。还检查了Babel 0.9.6 - 我们在缺省语言环境检测中修复了一些问题。

相关问题