2013-05-14 63 views
1

我有以下的cronjob:Django的同治命令导致错误

0 0 * * * source /home/admin/data/virtualenvs/myapp/bin/activate && python /home/admin/data/virtualenvs/myapp/project/manage.py 1c-import >> /home/admin/data/logs/1c-import.log 2>&1 

所以,在日志文件中我看到以下错误:

Traceback (most recent call last): 
    File "/home/admin/data/virtualenvs/myapp/project/manage.py", line 28, in <module> 
    execute_from_command_line(sys.argv) 
    File "/home/admin/data/virtualenvs/myapp/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 443, in execute_from_command_line 
    utility.execute() 
    File "/home/admin/data/virtualenvs/myapp/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 382, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/home/admin/data/virtualenvs/myapp/local/lib/python2.7/site-packages/django/core/management/base.py", line 196, in run_from_argv 
    self.execute(*args, **options.__dict__) 
    File "/home/admin/data/virtualenvs/myapp/local/lib/python2.7/site-packages/django/core/management/base.py", line 232, in execute 
    output = self.handle(*args, **options) 
    File "/home/admin/data/virtualenvs/myapp/project/helper/management/commands/1c-import.py", line 94, in handle 
    print 'Product [%s] with price %s and qty %s' % (product_title, product_price, product_qty) 
UnicodeEncodeError: 'ascii' codec can't encode characters in position 34-35: ordinal not in range(128) 

但是当我尝试手动运行THIC命令 - 没关系。你怎么看 - 有什么可能导致这个错误?

+0

而不是激活VENV尝试:'0 0 * * * /家/ admin/data/virtualenvs/myapp/bin/python /home/admin/data/virtualenvs/myapp/project/manage.py 1c-import' – rockingskier 2013-05-14 10:18:34

+0

再次得到同样的错误 – dizpers 2013-05-15 02:29:16

回答

1

我的猜测是,当从cron作业运行它时,系统会尝试将产品标题,价格和数量转换为ASCII,而您在手动运行时选择不同的编码。 您的一个或多个产品将拥有标题,价格和/或数量中的字符,这些字符不能编码为ASCII。

它是否帮助,如果你打印的信息是这样?:

ENCODING = "utf-8" 
print 'Product [%s] with price %s and qty %s' % (product_title.encode(ENCODING), 
         product_price.encode(ENCODING), product_qty.encode(ENCODING)) 
+0

感谢您的回答!当我手动运行命令时,它运行良好 - 这就是为什么我认为问题不在于此。 – dizpers 2013-05-16 16:33:04

+0

如果另一个解决方案允许您保持原样,我会为此付出代价。如果没有,试试这个,它对我有用。 – 2013-05-16 19:59:58

+0

太神奇了!这对我来说可以!非常感谢!:-)但是我仍然不明白为什么手动运行命令没有错误? – dizpers 2013-05-17 14:52:03