2011-12-05 77 views
5

我試圖將自定義django命令作爲Heroku上的計劃任務運行。我可以通過以下方式在本地執行自定義命令:python manage.py send_daily_email。 (注:我沒有與自定義管理命令本身的任何問題)在Heroku上運行Django自定義manage.py任務 - 導入問題

然而,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 - 推出蟒蛇殼 - 和成功全面導入settingsdjango.conf

我敢肯定它是與我的PYTHON_PATH或能見度Django的SETTINGS_MODULE,但我不知道該如何解決這個問題。有人能指出我正確的方向嗎?有沒有更簡單的方法來完成我在這裏要做的事情?

非常感謝您的提示和建議提前! Heroku新手! :)

編輯:

每尼克斯的評論,我做了一些調整,並沒有發現,我指定確切的蟒蛇路徑,我沒有得到過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的運行斌/ Python應用程序/ manage.py```。

如果我遇到問題的答案,我會保留更新。

回答

3

您可能正在使用不同的解釋器。

檢查以確保shell python與腳本/ usr/bin/python中引用的shell相同。這可能是因爲您的路徑中存在不同的路徑,這可以解釋爲什麼它在您運行python manage.py時運行,而不是您明確引用/usr/bin/python的shell腳本。


打字which python會告訴你在你的路徑上找到了什麼解釋器。

+0

哇。你是對的。當我調用'''heroku run bin/python bin/send_daily_email.py'''(vs.'''heroku run bin/send_daily_email.py)。我會修改我的答案,並顯示我目前的迴應,看看你是否可以幫助:)但我會說,所以你已經回答了這個問題。 – kturner