单独的python脚本在Django中找不到自定义模块

时间:2016-12-17 06:32:10

标签: python django django-models

这是我的Django app文件夹结构

|-----tt
|      |--settings.py
|
|-----warehouse
|       |--models.py
|       |--__init__.py
|
|-----dashboard
|       |--email_excel_reports.py
|

email_excel_reports.py

# for ORM query
from warehouse.models import EntryFormLineItem
from django.db.models import Sum
from django.db.models.functions import Coalesce
from django.utils import timezone


line_items = EntryFormLineItem.objects.filter(approved_by__isnull=False, ...

我在python email_excel_reports.py

中运行dashboard时出现此错误
Traceback (most recent call last):
  File "/vagrant/dashboard/email_excel_reports.py", line 11, in <module>
    from warehouse.models import EntryFormLineItem
ImportError: No module named 'warehouse'

请记住,当我运行python email_excel_reports.py时,我正在使用nginx运行gunicorn,因此django应用已成功运行。

__init__.py内的warehouse

default_app_config = 'warehouse.apps.WarehouseConfig'

当我运行python manage.py shell然后输入相同的代码行时,运行代码没有问题。

如何克服错误?

重新开放 - 为什么?

仅仅因为解决方法是将python manage.py shell <放在python脚本文件的前面,并且这个修复程序在所谓的重复问题的答案中不可用。

1 个答案:

答案 0 :(得分:0)

由于需要包含django模块,运行它的更好方法是

python manage.py shell < dashboard/email_excel_reports.py