【问题标题】:Exception occurred processing WSGI script - WAMP Server处理 WSGI 脚本时发生异常 - WAMP 服务器
【发布时间】:2013-08-06 10:37:11
【问题描述】:

在 Windows Server 2008 R2 Wamp 机器上安装了 Python 和 Django。一切都很好,除了之前在 LAMP 机器上的 django/python 网站的移植版本。

通过 Web 浏览器访问虚拟主机时出现 500 内部服务器错误

我从 apache 得到这个错误日志:

[Tue Aug 06 12:29:27 2013] [error] [client 127.0.0.1] mod_wsgi (pid=1788): Exception occurred processing WSGI script 'C:/Wamp/www/mysite_com/mysite_com.wsgi'.
[Tue Aug 06 12:29:27 2013] [error] [client 127.0.0.1] Traceback (most recent call last):
[Tue Aug 06 12:29:27 2013] [error] [client 127.0.0.1]   File "C:\\Python27\\lib\\site-packages\\django\\core\\handlers\\wsgi.py", line 255, in __call__
[Tue Aug 06 12:29:27 2013] [error] [client 127.0.0.1]     response = self.get_response(request)
[Tue Aug 06 12:29:27 2013] [error] [client 127.0.0.1]   File "C:\\Python27\\lib\\site-packages\\django\\core\\handlers\\base.py", line 178, in get_response
[Tue Aug 06 12:29:27 2013] [error] [client 127.0.0.1]     response = self.handle_uncaught_exception(request, resolver, sys.exc_info())
[Tue Aug 06 12:29:27 2013] [error] [client 127.0.0.1]   File "C:\\Python27\\lib\\site-packages\\django\\core\\handlers\\base.py", line 220, in handle_uncaught_exception
[Tue Aug 06 12:29:27 2013] [error] [client 127.0.0.1]     if resolver.urlconf_module is None:
[Tue Aug 06 12:29:27 2013] [error] [client 127.0.0.1]   File "C:\\Python27\\lib\\site-packages\\django\\core\\urlresolvers.py", line 342, in urlconf_module
[Tue Aug 06 12:29:27 2013] [error] [client 127.0.0.1]     self._urlconf_module = import_module(self.urlconf_name)
[Tue Aug 06 12:29:27 2013] [error] [client 127.0.0.1]   File "C:\\Python27\\lib\\site-packages\\django\\utils\\importlib.py", line 35, in import_module
[Tue Aug 06 12:29:27 2013] [error] [client 127.0.0.1]     __import__(name)
[Tue Aug 06 12:29:27 2013] [error] [client 127.0.0.1] ImportError: No module named urls

这是我的 .wsgi 应用:

import os, sys

sys.path.append('c:/Wamp/www/')
os.environ ['DJANGO_SETTINGS_MODULE'] = 'mysite_com.settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

还有我的 apache 虚拟主机

<VirtualHost *:80>
        ServerName mysite.com
        ServerAlias www.mysite.com
        DocumentRoot "C:/Wamp/www/mysite_com/"
        WSGIScriptAlias / "C:/Wamp/www/mysite_com/mysite_com.wsgi"
</VirtualHost>

文件夹结构

   \www
       \mysite_com
                  \__init__.py
                  \settings.py
                  \urls.py
                  \manage.py
                  \mysite_com.wsgi

有什么建议吗? 谢谢

【问题讨论】:

  • 你有mysite_com.urls 模块吗?
  • 我不是 django 专家,我需要在哪里找到它?我在 mysite_com 根目录中有一个 urls.py 文件,以及 settings.py 和 .wsgi 文件。
  • mysite_com 目录中,我会说。需要带有__init__.py 文件或urls.py 文件的urls 目录。
  • WSGIScriptAlias - 不应该是 mysite_com.wsgi 而不是 mysyte_com.wsgi'
  • 更正了 WSGIScriptAlias,没有运气

标签: python django apache wamp mod-wsgi


【解决方案1】:

您将站点路径添加到系统路径错误。请参阅在 Linux 中您将使用正斜杠“/”,而在 Windows(您似乎正在使用)中使用反斜杠“\”。当然,您需要将它们加倍,这样它就不会被呈现为转义字符串:

sys.path.append('C:\\wamp\\www')

当然,这样会容易得多:

sys.path.append(r'C:\wamp\www')

然后看看 - 你的服务器可以找到 wsgi 应用程序,因为你告诉 apache 在哪里可以找到它,所以它抱怨下一个模块它找不到(恰好是 urls.py)。我已经在评论中回答了,但我想解释一下为什么您会以特定方式看到错误。

附言 如果这仍然不起作用,您可能需要将路径附加到您的实际应用程序:

sys.path.append(r'C:\Wamp\www\mysite_com')

【讨论】:

  • 听从您的建议,新错误:raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SETTINGS_MODULE, e)) ImportError :无法导入设置“mysite_com.settings”(它在 sys.path 上吗?):没有名为 mysite_com.settings 的模块
  • 这意味着“DJANGO_SETTINGS_MODULE”没有被正确识别,尽管我在您的代码中找不到任何错误。也许试试这个:os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite_com.settings")
  • 另外 - 您是否尝试过按照我的建议将路径附加到实际应用程序?
猜你喜欢
  • 2016-04-22
  • 2016-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-03
相关资源
最近更新 更多