Я пытаюсь запустить пользовательскую команду 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
или видимостью к SETTINGS_MODULE
Джанго, но я не уверен, как решить проблему. Может ли кто-нибудь указать мне правильное направление? Есть ли более простой способ выполнить то, что я пытаюсь сделать здесь?
Большое спасибо за ваши советы и рекомендации заранее! Новое в Heroku! :)
EDIT:
Согласно комментарию Nix, я внес некоторые коррективы и обнаружил, что, указав мой точный путь к питону, я прошел установку 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```.
Буду обновлять, если найду ответ.