我正在尝试在 Heroku 上运行自定义 django 命令作为计划任务。我可以通过以下方式在本地执行自定义命令:python manage.py send_daily_email
. (注意:我对自定义管理命令本身没有任何问题)
但是,当尝试通过 Heroku Scheduler 插件“运行”任务时,Heroku 给了我以下异常:
Traceback (most recent call last):
File "bin/send_daily_visit_email.py", line 2, in <module>
from django.conf import settings
ImportError: No module named django.conf
我在/bin/send_daily_email.py中放置了一个 python 脚本,如下所示:
#! /usr/bin/python
from django.conf import settings
settings.configure()
from django.core import management
management.call_command('send_daily_email') #delegates off to custom command
然而,在 Heroku中,我能够运行heroku run bin/python
- 启动 python shell - 并成功导入settings
django.conf
我很确定这与我的PYTHON_PATH
或对 Django 的可见性有关SETTINGS_MODULE
,但我不确定如何解决这个问题。有人能指出我正确的方向吗?有没有更简单的方法来完成我在这里尝试做的事情?
非常感谢您提前提供的提示和建议!Heroku 新手!:)
编辑:
根据 Nix 的评论,我做了一些调整,并发现指定我的确切 python 路径,我确实通过了 Django 设置。
我现在收到:
File "/app/lib/python2.7/site-packages/django/core/management/__init__.py", line 155, in call_command
raise CommandError("Unknown command: %r" % name)
django.core.management.base.CommandError: Unknown command: 'send_daily_email'
虽然,当我运行“heroku run bin/python app/manage.py”时,我可以看到“send_daily_email”。
如果我遇到答案,我会保持更新。