2013-09-30 73 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