Я пытаюсь запустить пользовательскую команду django в качестве запланированной задачи на Heroku. Я могу выполнить пользовательскую команду локально через: python manage.py send_daily_email
. (примечание: у меня НЕТ проблем с самой пользовательской командой управления)
Однако Heroku дает мне следующее исключение при попытке «запустить» задачу через надстройку планировщика 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
Я поместил скрипт 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
или видимостью SETTINGS_MODULE
Django, но я не знаю, как решить эту проблему. Может ли кто-нибудь указать мне в правильном направлении? Есть ли более простой способ выполнить то, что я пытаюсь сделать здесь?
Большое спасибо за ваши советы и советы заранее! Новое в Героку! :)
ИЗМЕНИТЬ:
Согласно комментарию Никса, я внес некоторые коррективы и обнаружил, что, указав свой точный путь к 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```.
Я буду держать обновление, если я найду ответ.