Herokuでスケジュールされたタスクとしてカスタムdjangoコマンドを実行しようとしています。次の方法でカスタムコマンドをローカルで実行できます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
/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シェルの起動)を実行して、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」が表示されます。
答えが出たら更新します。