Heroku上的Django manage.py自定义命令

时间:2013-09-30 06:03:38

标签: python django python-2.7 heroku django-manage.py

我正在尝试使用Heroku托管网站运行cron作业。我正在使用Django后端。我编写了一个本地工作的自定义manage.py命令(status_crawl.py)。我看过一些关于如何解决此问题的指南和帖子,但这些建议无效(例如Running Django custom manage.py task on Heroku - Importing Issuesthis guide)。

甚至更奇怪的是它正在识别其他命令。 (我设法通过使用django-extensions框架中的脚本来完成基本任务)。但它仍然困扰着我。

我的基本文件结构如:

 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 run python manage.py help'时,该命令显示为一个选项。当我尝试使用manage.py命令自己运行脚本时,它就没有运行。

谢谢!

1 个答案:

答案 0 :(得分:1)

可能它与Heroku上的PYTHONPATH变量有关。 Heroku上的此变量可能与您当地的PYTHONPATH不同。尝试从项目的根目录导入,例如:

from likes.management.commands import status_crawl
相关问题