Crontab无法运行django管理命令

时间:2014-06-07 19:30:23

标签: python django crontab psycopg2

我在django中编写了一个脚本,用于将保存在数据库中的排队电子邮件发送给用户。有一个mangement命令,应该每小时由crontab调用以发送电子邮件。但是,每当执行crontab作业时,我都会收到以下错误:

django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: libpq.so.5: cannot open shared object file: No such file or directory

我的django应用程序正常运行没有任何错误。但是运行crontab失败了。以下是我的crontab配置:

0 * * * * source /opt/portal/virtEnv/bin/activate && python /opt/portal/websource/manage.py send_queued_messages --limit=1

有人知道如何解决问题吗?

3 个答案:

答案 0 :(得分:0)

AFAIK你不能在crontab中使用activate脚本,只需将它指向你的virtualenv中的python解释器,它就会起作用:

0 * * * * /opt/portal/virtEnv/bin/python /opt/portal/websource/manage.py send_queued_messages --limit=1

答案 1 :(得分:0)

尝试在virtualenv中指向python版本。不要激活和使用python。

试试这个:

0 * * * * /opt/portal/virtEnv/bin/python /opt/portal/websource/manage.py send_queued_messages --limit=1

已编辑:已移除'来源'在命令的开头。

答案 2 :(得分:0)

我找到了解决方案。 我不得不将LD_LIBRARY_PATH环境变量添加到crontab配置中,路径指向postgres db的lib文件夹。

现在它运作顺利。