Django应用访问时ViewDoesNotExist

问题描述:工作中的网站后台是基于django开发的,由基本的web服务,ftp服务,websocket服务,file服务等构成,使用了virtual env进行调试环境和运行环境的隔离。其中有一个功能是监测后台的cron jon(定时任务)的执行情况,今天我改了其他模块的代码后,引起了这个跟踪日志页面打不开,报错如下

ViewDoesNotExist at /tools/viewcrontabstatus/

Could not import cada.cadaadmin.misc.views. Error was: No module named pysvn
GET
http://127.0.0.1:8000/tools/viewcrontabstatus/
1.2.4
ViewDoesNotExist
Could not import cada.cadaadmin.misc.views. Error was: No module named pysvn
C:\cada\lib\site-packages\django-1.2.4-py2.6.egg\django\core\urlresolvers.py in _get_callback, line 133
C:\cada\Scripts\python.exe
2.6.0
['C:\\cada\\cadaadmin\\cada\\cadaadmin', 'C:\\cada\\lib\\site-packages\\setuptools-0.6c11-py2.6.egg', 'C:\\cada\\lib\\site-packages\\pip-1.3.1-py2.6.egg', 'c:\\cada\\trunk', 'C:\\cada\\lib\\site-packages\\openpyxl-1.6.2-py2.6.egg', 'C:\\cada\\lib\\site-packages\\xlwt-0.7.5-py2.6.egg', 'C:\\cada\\lib\\site-pac....................]

报错只是指出有些模块有问题,但是并没有指明问题代码的位置,很头痛

环境工具:windows XP python2.6  Django1.2.4  virtualenv1.10.0

解决过程:1. 查看views.py和urls.py文件,查看/tools/viewcrontabstatus/路径在路由中是否配置正常,是否有相应的view function 处理响应,发现都正常

                   2. 接下来,进cmd的python shell,执行

>>>import cada.cadaadmin.misc.views

发现报错如下

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "cada\cadaadmin\misc\views.py", line 13, in <module>
    from cada.cadaadmin.cadacv.models import CadaCrontabStatus
    ................
django.core.exceptions.ImproperlyConfigured: 'django.db.backends.mysql' isn't an
 available database backend.
Try using django.db.backends.XXX, where XXX is one of:
    'dummy', 'mysql', 'oracle', 'postgresql', 'postgresql_psycopg2', 'sqlite3'
Error was: cannot import name utils

这些错误都是跟django环境相关的,并没有暴露Error was: No module named pysvn的问题在哪里

                  

                   3. 退出python shell,使用python manage.py shell进入django shell

>>>import cada.cadaadmin.misc.views

报错如下
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "c:\cada\lib\site-packages\cadaadmin-0.1-py2.6.egg\cada\cadaadmin\misc\vi
ews.py", line 17, in <module>
    from cada.bin.tools.macro.svn import SVN
  File "C:\cada\lib\site-packages\cada.data-0.1-py2.6.egg\cada\bin\tools\macro\s
vn.py", line 11, in <module>
    import pysvn
ImportError: No module named pysvn

这里的日志就很详细,我想起来在vituralenv调试环境里面(C:\cada\cadadata\cada\bin\tools\macro\svn.py)的svn.py如下

...
try:
    import pysvn
except:
    pass

...

而运行环境里面(C:\cada\Lib\site-packages\cada.data-0.1-py2.6.egg\cada\bin\tools\macro\svn.py)如下

...

import pysvn

...

原来是因为目前的环境里面没有安装pysvn造成的,只不过因为不重要,所以之前我加了try...except...忽略了这个问题,今天又重新装了一遍运行环境,导致这里还原了,造成问题。

相关推荐