Опитвам се да стартирам персонализирана команда 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
на Django, но не съм сигурен как да разреша проблема. Може ли някой да ме насочи в правилната посока? Има ли по-лесен начин да постигна това, което се опитвам да направя тук?
Благодаря ви много за вашите съвети и съвети предварително! Нов в 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'
Въпреки това мога да видя 'send_daily_email', когато стартирам ``heroku run bin/python app/manage.py```.
Ще поддържам актуализация, ако намеря отговора.