int*_*tar 8 django configuration
我有一个Django项目似乎与settings.py工作得很好,它也导入了local_settings.py而没有问题.
我现在在设置文件的末尾添加了以下行:
try:
from extras import *
except ImportError, e:
print "import extras failed :: " + `e`
Run Code Online (Sandbox Code Playgroud)
extras.py是一个额外配置信息的文件,与settings.py和local_settings.py位于同一目录中,但是,我现在得到:
import extras failed :: ImportError('Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined.',)
Run Code Online (Sandbox Code Playgroud)
这似乎是由于我试图
from django.contrib.auth.models import User,UserManager
from django.db import models
Run Code Online (Sandbox Code Playgroud)
在那个extras.py文件中.
有人有主意吗?
干杯
Vin*_*jip 17
通常,有一条线
from django.db import models
Run Code Online (Sandbox Code Playgroud)
in settings.py 将导致循环依赖.这会导致导入错误,在不同版本的Django中报告的情况略有不同.例如,如果我将该行添加到正在运行的Django设置并调用"manage.py shell",我会得到:
错误:在包含"./manage.py"的目录中找不到文件'settings.py'.看来你已经定制了东西.您必须运行django-admin.py,并将其传递给您的设置模块.(如果文件settings.py确实存在,则会以某种方式导致ImportError.)
如果我删除该行,一切都很好.
原因是Django的模型加载机器(位于django.db.models包中)导入settings.py,读取它INSTALLED_APPS以查看应安装哪些应用程序,然后加载这些应用程序.(您可以通过__init__.py为已安装的某个应用程序添加print语句来确认这一点.)
如果您尝试导入django.db内容settings.py,则会导致循环导入依赖项和ImportError相关的错误消息.
一种解决方法是将需要有问题的导入(以及导入本身)的功能移动到应用程序.
| 归档时间: |
|
| 查看次数: |
9534 次 |
| 最近记录: |