我在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
有人知道如何解决问题吗?
答案 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文件夹。
现在它运作顺利。