Skip to main content
 首页 » 编程设计

python之对 WSGI 中的 : Django "could not import app.views" but can import app, 感到困惑

2025年05月04日24itcoder

我遇到了一个奇怪的 Django 问题,使用 mod_wsgi 运行 Django。

Django 正在寻找 urls.py,然后说:

ViewDoesNotExist: Could not import app.views. Error was: No module named views 

奇怪的是,如果我有

import app 

在 urls.py 的导入语句中,我没有收到错误(直到它如上所示命中 app.views),但如果我有

from app import views 

在我的导入语句中,出现错误。

如 Django 调试信息所示,我的 python 路径同时包含包含文件夹和应用程序文件夹。如果我从命令行运行 Python,我可以导入 app.views 就好了。我可以使用 python manage.py runserver 运行应用程序就好了。

我也试过从 urls.py 打印到 stderr 的 python 路径,它里面有应用程序的路径。

可能发生了什么?

我的第一个想法是应用程序文件夹中可能没有 __init__.py,但有。

谢谢!

更新

在 runserver 应用程序中,如果我尝试

print app.__file__ 
>> \path\to\app\__init__.py 

但是在wsgi版本中,我只看到:

print app.__file__ 
>> \path\to\app\ 

换句话说,就是找不到__init__.pyc。

请您参考如下方法:

可能是循环依赖 - views 中的某些东西正在导入另一个模块,该模块本身正在尝试导入 views。