2013-09-30 92 views
2

我試圖用Heroku託管的網站運行cron作業。我正在使用Django後端。我寫了一個可在本地工作的自定義manage.py命令(status_crawl.py)。我已經看到了一些關於如何解決這個問題的指南和帖子,但是這些建議沒有奏效(如Running Django custom manage.py task on Heroku - Importing Issuesthis guide)。Heroku上的Django manage.py自定義命令

即使是更奇怪的是,它正在識別其他命令。 (並且我設法通過使用django-extensions框架中的runscript來完成基本任務)。但它仍然困擾着我。

我的基本文件結構喜歡就好:

likes: 
    ... 
    management: 
     __init__.py 
     commands: 
     __init__.py 
     status_crawl.py 

回溯是:

Traceback (most recent call last): 
    File "manage.py", line 10, in <module> 
    execute_from_command_line(sys.argv) 
    File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/__init__.py", line 453, in execute_from_command_line 
    utility.execute() 
    File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/__init__.py", line 392, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/__init__.py", line 272, in fetch_command 
    klass = load_command_class(app_name, subcommand) 
    File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/__init__.py", line 77, in load_command_class 
    module = import_module('%s.management.commands.%s' % (app_name, name)) 
    File "/app/.heroku/python/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module 
    __import__(name) 
ImportError: No module named commands.status_crawl 

另一個奇怪的是,當我運行「的Heroku運行python manage.py幫助」的命令作爲一個選項出現。當我嘗試使用manage.py命令自己運行腳本時,它只是沒有運行。

謝謝!

+0

您是否正在使用Python 3? –

+0

我使用python 2.7。 – AdamG

回答

1

可能與Heroku上的PYTHONPATH變量有關。 Heroku上的這個變量可能與您當地的PYTHONPATH不同。嘗試從項目的根目錄導入,例如:

from likes.management.commands import status_crawl