当使用apache& mod_wsgi

时间:2015-11-11 04:00:54

标签: python django apache mod-wsgi

我在centos6.5中使用Django(1.5.12)和httpd-2.2.15-29以及python 2.6.6。

非常奇怪的错误,我被困住了。请帮帮我!

我的项目树看起来像:

/opt/django-demo
|-- api
|   |-- __init__.py
|   |-- **views.py**
|   |-- utils
|   |   |-- __init__.py
|   |   |-- **debug.py**
|-- demo
|   |-- __init__.py
|   |-- settings.py
|   |-- urls.py
|   |-- wsgi.py

我需要在 views.py 中导入 utils.debug

from api.utils import debug

它适用于django runserver,但不适用于apache:

Request Method: GET
Request URL:    http://xxxxx/xxxx/
Django Version: 1.5.12
Exception Type: ImportError
Exception Value: No module named utils
Exception Location: /opt/django-demo/api/debug.py in <module>, line 9
Python Executable:  /usr/bin/python
Python Version: 2.6.6
Python Path:    
['/opt/django-demo',
 '/usr/lib/python2.6/site-packages/pip-7.1.2-py2.6.egg',
 '/usr/lib64/python26.zip',
 '/usr/lib64/python2.6',
 '/usr/lib64/python2.6/plat-linux2',
 '/usr/lib64/python2.6/lib-tk',
 '/usr/lib64/python2.6/lib-old',
 '/usr/lib64/python2.6/lib-dynload',
 '/usr/lib64/python2.6/site-packages',
 '/usr/lib64/python2.6/site-packages/gst-0.10',
 '/usr/lib64/python2.6/site-packages/gtk-2.0',
 '/usr/lib64/python2.6/site-packages/webkit-1.0',
 '/usr/lib/python2.6/site-packages',
 '/usr/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg-info',
 '/opt/django-demo/api/utils']

从您可以看到的错误中,已经通过wsgi.py在PYTHONPATH中添加了子目录。 并且没有遗漏__init__.py

在mv utils / debug.py之后到api / debug.py:

from api import debug

它有效!!!

那么,为什么?

1 个答案:

答案 0 :(得分:0)

终于解决了问题。 似乎debug.py中存在需要导入的错误。 修复错误后,此错误消失。

即使'/ opt / django-demo / api / utils'也不需要在PYTHONPATH中添加。