困惑:Django "无法导入 app.views",但可以导入 app,WSGI中?
我遇到了一个奇怪的Django问题,正在用mod_wsgi运行Django。
Django能找到urls.py
,然后就出现了:
ViewDoesNotExist: Could not import app.views. Error was: No module named views
奇怪的是,如果我在urls.py
的导入语句中有
import app
我就不会收到错误(直到它碰到上面提到的app.views
),但如果我有
from app import views
在我的导入语句中,我就会收到错误。
我的Python路径,在Django的调试信息中显示,包含了包含文件夹和应用文件夹。如果我从命令行运行Python,我可以正常导入app.views
。我也可以用python manage.py runserver
正常运行这个应用。
我还尝试从urls.py
打印Python路径到错误输出中,它里面也有应用的路径。
这可能是什么原因呢?
我最开始想,可能是应用文件夹里没有__init__.py
,但实际上是有的。
谢谢!
更新
在运行服务器的应用中,如果我尝试
print app.__file__
>> \path\to\app\__init__.py
但在wsgi版本中,我只看到:
print app.__file__
>> \path\to\app\
换句话说,它就是找不到__init__.pyc
。
2 个回答
-2
你的网络服务器没有足够的文件句柄了。请将WSGI应用程序重新配置为守护进程模式。
3
这可能是个循环依赖的问题——在 views
里,有一个模块在引入另一个模块,而那个模块又在试图引入 views
。