【问题标题】:Running Django custom manage.py task on Heroku - Importing Issues在 Heroku 上运行 Django 自定义 manage.py 任务 - 导入问题
【发布时间】:2012-01-12 22:09:06
【问题描述】:

我正在尝试在 Heroku 上运行自定义 django 命令作为计划任务。我可以通过以下方式在本地执行自定义命令:python manage.py send_daily_email。 (注意:我对自定义管理命令本身没有任何问题)

但是,当尝试通过 Heroku Scheduler 插件“运行”任务时,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

我在/bin/send_daily_email.py中放了一个python脚本,如下:

#! /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 - 启动 python shell - 并成功从 django.conf 导入 settings

我很确定这与我的 PYTHON_PATH 或 Django 的 SETTINGS_MODULE 的可见性有关,但我不确定如何解决这个问题。有人能指出我正确的方向吗?有没有更简单的方法来完成我在这里尝试做的事情?

非常感谢您提前提供的提示和建议! Heroku 新手! :)

编辑:

根据 Nix 的评论,我做了一些调整,发现指定我的确切 python 路径后,我确实通过了 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'

虽然,当我运行“heroku run bin/python app/manage.py”时,我可以看到“send_daily_email”。

如果我遇到答案,我会保持更新。

【问题讨论】:

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


    【解决方案1】:

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

    检查以确保 shell python 与您在脚本 /usr/bin/python 中引用的相同。可能是您的路径中有一个不同的路径,这可以解释为什么它在您运行 python manage.py 而不是您明确引用 /usr/bin/python 的 shell 脚本时有效。


    输入 which python 将告诉您在您的路径上找到了哪个解释器。

    【讨论】:

    • 哇。你说得对。当我打电话给heroku run bin/python bin/send_daily_email.py(相对于```heroku run bin/send_daily_email.py)。我会修改我的答案并显示我当前的回复,看看你是否能提供帮助:)但我会告诉你,你已经回答了这个问题。
    【解决方案2】:

    此外,这也可以通过将主目录添加到 Python 路径来解决。一种快速且不显眼的方法是将其添加到 PYTHONPATH 环境变量(通常是 Heroku Cedar 堆栈上的 /app)。

    通过 heroku config 命令添加:

    $ heroku config:add PYTHONPATH=/app
    

    应该这样做!更多详情:http://tomatohater.com/2012/01/17/custom-django-management-commands-on-heroku/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-05
      • 2021-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-02
      • 2016-12-28
      • 2021-02-16
      相关资源
      最近更新 更多