Sto tentando di eseguire un comando personalizzato django come operazione pianificata su Heroku. Sono in grado di eseguire il comando personalizzato localmente tramite: python manage.py send_daily_email
. (Nota: non ho alcun problema con il comando di gestione personalizzato stesso)Esecuzione dell'attività Django personalizzata manage.py su Heroku - Problemi di importazione
Tuttavia, Heroku mi sta dando la seguente eccezione quando si cerca di "Run" il compito attraverso Heroku Scheduler addon:
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
I collocato uno script python in /bin/send_daily_email.py, ed è la seguente:
#! /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
All'interno Heroku, tuttavia, sono in grado di eseguire heroku run bin/python
- avviare la shell di pitone - e successo completamente importare settings
da django.conf
Sono abbastanza sicuro che abbia qualcosa a che fare con la mia PYTHON_PATH
o la visibilità di Django di SETTINGS_MODULE
, ma sono sicuri di come risolvere il problema. Potrebbe qualcuno indicarmi la giusta direzione? C'è un modo più semplice per realizzare ciò che sto cercando di fare qui?
Grazie mille per i vostri suggerimenti e consigli in anticipo! Nuovo per Heroku! :)
EDIT:
commento di Per Nix, ho fatto alcune modifiche, e ha scoperto che la mia specifica esatto percorso pitone, ho fatto andare oltre la configurazione Django.
ora di ricezione:
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'
Anche se, posso vedere 'send_daily_email' quando corro `` Heroku gestita bin/python app/manage.py```.
Terremo un aggiornamento se trovo la risposta.
Wow. Hai ragione. Quando chiamo '' 'heroku esegui bin/python bin/send_daily_email.py''' (contro' '' heroku run bin/send_daily_email.py).Rivedretterò la mia risposta e mostrerò la mia attuale risposta per vedere se puoi aiutare :) Ma direi di aver risposto alla domanda. – kturner