Django新手尝试让treeio在apache后工作
我好像遇到了和这个人类似的问题:Django新手部署问题 - 导入错误:无法导入设置'settings',但我完全搞不懂。服务器运行的是Debian系统。这个应用在内部服务器上运行得很好,但是当我尝试使用apache和mod_python时,就出现了以下问题。
File "/usr/local/lib/python2.6/dist-packages/django/conf/__init__.py", line 89, in __init__
raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SETTINGS_MODULE, e))
ImportError: Could not import settings 'treeio.settings' (Is it on sys.path?): No module named treeio.settings
- 项目目录是 /var/www/treeio
- 所有文件的权限都是777(我在测试是否有权限问题)
httpd.conf的内容
<Location "/treeio/"> SetHandler python-program PythonHandler django.core.handlers.modpython SetEnv DJANGO_SETTINGS_MODULE treeio.settings PythonOption django.root /treeio PythonDebug On PythonPath "['/var/www/treeio'] + sys.path" </Location>
更多信息:
echo $PYTHONPATH
:/var/www/treeio/..:/var/www/treeio
echo $DJANGO_SETTINGS_MODULE
treeio.settings
>>> import sys
>>> sys.path
['', '/usr/local/lib/python2.6/dist-packages/pip-1.0.2-py2.6.egg', '/var/www/treeio', '/var/www', '/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk', '/usr/lib/python2.6/lib-old', '/usr/lib/python2.6/lib-dynload', '/usr/local/lib/python2.6/dist-packages', '/usr/lib/python2.6/dist-packages', '/usr/lib/pymodules/python2.6']
帮帮我,stackoverflow,你是我唯一的希望!
1 个回答
2
你的主要问题是,你在使用mod-python,尽管已经有明确的警告说它已经过时,不应该用于新的项目。
不过如果你真的坚持要用它,问题就很明显了:你把/var/www/trio
加到了路径中,所以在trio
里的所有东西都需要直接引用——也就是说用settings
,而不是trio.settings
。