【发布时间】:2014-06-09 14:15:02
【问题描述】:
我正在部署一个 django 项目并遇到此错误。
我的项目结构如下:
my_project
my_project
urls.py
settings.py
index.wsgi
home
views.py
models.py
.........
requirements.txt
manage.py
我的 index.wsgi 如下所示:
import os
import sys
import site
# Add the site-packages of the chosen virtualenv to work with
site.addsitedir('~/.virtualenvs/my_project/lib/python2.6/site-packages/')
# Add the app's directory to the PYTHONPATH
sys.path.append('/var/www/uni/my_project')
sys.path.append('/var/www/uni/my_project/home')
os.environ['DJANGO_SETTINGS_MODULE'] = 'my_project.settings'
# Activate your virtual env
activate_env=os.path.expanduser("/home/user/.virtualenvs/my_project/bin/activate_this.py")
execfile(activate_env, dict(__file__=activate_env))
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
在我的虚拟主机中,配置如下:
<Directory /var/www/uni/my_project/templates/static>
Allow from all
</Directory>
WSGIScriptAlias / /var/uni/news/my_project/my_project/index.wsgi
apache error.log 显示为:
mod_wsgi (pid=27330): Exception occurred processing WSGI script '/var/www/uni/my_project/my_project/index.wsgi'.
[Mon Jun 09 14:23:53 2014] [error] [client ip] Traceback (most recent call last):
[Mon Jun 09 14:23:53 2014] [error] [client ip] File "/usr/local/lib/python2.6/dist-packages/django/core/handlers/wsgi.py", line 219, in __call__
[Mon Jun 09 14:23:53 2014] [error] [client ip] self.load_middleware()
[Mon Jun 09 14:23:53 2014] [error] [client ip] File "/usr/local/lib/python2.6/dist-packages/django/core/handlers/base.py", line 39, in load_middleware
[Mon Jun 09 14:23:53 2014] [error] [client ip] for middleware_path in settings.MIDDLEWARE_CLASSES:
[Mon Jun 09 14:23:53 2014] [error] [client ip] File "/usr/local/lib/python2.6/dist-packages/django/utils/functional.py", line 184, in inner
[Mon Jun 09 14:23:53 2014] [error] [client ip] self._setup()
[Mon Jun 09 14:23:53 2014] [error] [client ip] File "/usr/local/lib/python2.6/dist-packages/django/conf/__init__.py", line 42, in _setup
[Mon Jun 09 14:23:53 2014] [error] [client ip] self._wrapped = Settings(settings_module)
[Mon Jun 09 14:23:53 2014] [error] [client ip] File "/usr/local/lib/python2.6/dist-packages/django/conf/__init__.py", line 95, in __init__
[Mon Jun 09 14:23:53 2014] [error] [client ip] raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SETTINGS_MODULE, e))
[Mon Jun 09 14:23:53 2014] [error] [client ip] ImportError: Could not import settings 'my_project.settings' (Is it on sys.path?): No module named my_project.settings
我浏览了 mod_wsgi 和 djnago 文档。我知道项目结构并没有保持所有的最佳实践。我稍后会更改它,但在此之前我需要上线。
我尝试更改文件权限以及相同问题中提到的所有更改。
所以,我假设我做错了什么。
上述文件中的错误配置在哪里?
谢谢。
【问题讨论】:
-
您需要显示 Apache 日志中的错误。
-
添加 apache 错误日志
-
@DanielRoseman 有什么想法吗?我已经添加了日志。
-
是否有
__init__.py文件可以使my_project成为一个包? -
有没有init.py
标签: python django deployment mod-wsgi