[英]Django can't import class in subdir of app when deployed with apache&mod_wsgi
我在帶有Python 2.6.6的centos6.5中使用Django(1.5.12)和httpd-2.2.15-29。
真的很奇怪,我被困住了。 請幫我!
我的項目樹如下所示:
/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
。
我將utils / debug.py轉換為api / debug.py之后:
from api import debug
有用!!!
所以為什么?
終於解決了問題。 似乎debug.py中有錯誤,需要導入。 修復錯誤后,該錯誤消失。
在PYTHONPATH中甚至不需要添加'/ opt / django-demo / api / utils'。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.