【发布时间】:2013-02-03 05:51:13
【问题描述】:
我正在尝试配置我的 Django 站点,以便它由 Apache 提供服务。
文件夹布局
`-- django
|
`-- webtools
|-- 1
|-- __init__.py
|-- __init__.pyc
|-- apache
| `-- django.wsgi
|-- macmonster
| |-- __init__.py
| |-- __init__.pyc
| |-- models.py
| |-- models.pyc
| |-- tests.py
| |-- views.py
| `-- views.pyc
|-- manage.py
|-- modules
| |-- __init__.py
| |-- __init__.pyc
| |-- macaddr.py
| |-- macaddr.pyc
| |-- validate.py
| `-- validate.pyc
|-- settings.py
|-- settings.pyc
|-- urls.py
`-- urls.pyc
/etc/httpd/conf.d/django.conf
<VirtualHost *:80 >
ServerName direct.macmonster.co.uk
WSGIScriptAlias / /opt/django/webtools/apache/django.wsgi
</VirtualHost>
/opt/django/webtools/apache/django.wsgi
import os, sys
sys.path.append('/opt/django/webtools')
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings")
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
我目前在日志中遇到的主要错误是:
TemplateSyntaxError: Caught ImportError while rendering: No module named webtools.macmonster
谢谢,
【问题讨论】:
-
在我看来像是一个 PYTHONPATH 问题。你的 PYTHONPATH 上有合适的目录吗? Apache“用户”是否在该目录上设置了正确的权限?
-
Apache 具有读取、执行权限。至于 Pythonpath 附加的 sys.path 应该允许我从 webtools 文件夹中导入模块吗?所以我对出了什么问题有点困惑。谢谢
-
我刚刚将 /opt/django/webtools 和 /opt/django 添加到 sys.path 中,现在一切正常。虽然我不知道为什么我需要添加这两个?