2011-01-29 11 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 - 我們在缺省語言環境檢測中修復了一些問題。

相關問題