Я пытаюсь запустить пользовательскую команду django в качестве запланированной задачи на Heroku. Я могу выполнить пользовательскую команду локально через: python manage.py send_daily_email
. (Примечание: у меня НЕ было проблем с самой пользовательской командой управления)
Однако Heroku выдает мне следующее исключение при попытке "Запустить" задачу через аддон Heroku Scheduler:
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
Я поместил скрипт python в /bin/send_daily_email. py, и он выглядит следующим образом:
#! /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 - и успешно импортировать settings
из django. conf
Я почти уверен, что это как-то связано с моим PYTHON_PATH
или видимостью Django's SETTINGS_MODULE
, но я не знаю, как решить эту проблему. Не мог бы кто-нибудь указать мне правильное направление? Есть ли более простой способ выполнить то, что я пытаюсь сделать?
Заранее большое спасибо за ваши подсказки и советы! Новичок в Heroku! :)
EDIT:
Согласно комментарию 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'
Хотя я вижу 'send_daily_email', когда запускаю ``heroku run bin/python app/manage.py``.
Я буду сообщать, если найду ответ.