【问题标题】:Apache ImportError: No module named _socket in wsgi deployment on DjangoApache ImportError:Django 上的 wsgi 部署中没有名为 _socket 的模块
【发布时间】:2012-11-19 19:10:46
【问题描述】:

我将 WSGI 3.3 用于 Python 2.7.3(32 位)用于 Apache 2.2。我从http://code.google.com/p/modwsgi/downloads/detail?name=mod_wsgi-win32-ap22py27-3.3.so 下载了wsgi,然后将其重命名并将其转移到APACHE 模块中。

我一直在尝试部署应用程序,但一直收到ImportError: no module named _socket。我已经包含了我的 wsgi 和错误日志。

我不确定我做错了什么。我想也许我可以包含一个 PythonPath 但不确定。如果需要,我可以尝试提供更多信息。提前谢谢你。

APACHE 配置:

LoadModule wsgi_module modules/mod_wsgi.so

<Directory C:/Users/xxxxd/Documents/cahd>
AllowOverride None
Options None
Order deny,allow
Allow from all
</Directory>

WSGIScriptAlias / C:/Users/xxxxd/Documents/cahd/cahd/django.wsgi

WSGI 文件:

import os, sys    
sys.path.append('C:/Users/xxxxd/Documents)
sys.path.append('C:/Users/xxxxd/Documents/cahd/')
os.environ['DJANGO_SETTINGS_MODULE'] = 'cahd.settings'
import django.core.handlers.wsgi application = django.core.handlers.wsgi.WSGIHandler()

错误是:

[Mon Nov 19 09:44:17 2012] [error] [client 127.0.0.1] Traceback (most recent call last):
[Mon Nov 19 09:44:17 2012] [error] [client 127.0.0.1] File "C:/Users/xxxxd/Documents/cahd/django.wsgi", line 10, in 
[Mon Nov 19 09:44:17 2012] [error] [client 127.0.0.1] import django.core.handlers.wsgi
[Mon Nov 19 09:44:17 2012] [error] [client 127.0.0.1] File "C:\django\Django-1.4.1\django\core\handlers\wsgi.py", line 8, in 
[Mon Nov 19 09:44:17 2012] [error] [client 127.0.0.1] from django import http
[Mon Nov 19 09:44:17 2012] [error] [client 127.0.0.1] File "C:\django\Django-1.4.1 \django\http\_init_.py", line 11, in 
[Mon Nov 19 09:44:17 2012] [error] [client 127.0.0.1] from urllib import urlencode, quote
[Mon Nov 19 09:44:17 2012] [error] [client 127.0.0.1] File "C:\Python27\Lib\urllib.py", line 26, in 
[Mon Nov 19 09:44:17 2012] [error] [client 127.0.0.1] import socket
[Mon Nov 19 09:44:17 2012] [error] [client 127.0.0.1] File "C:\Python27\Lib\socket.py", line 47, in 
[Mon Nov 19 09:44:17 2012] [error] [client 127.0.0.1] import _socket
[Mon Nov 19 09:44:17 2012] [error] [client 127.0.0.1] ImportError: No module named _socket

【问题讨论】:

  • 查看brettweiss.wordpress.com/2008/11/28/…同样的问题?
  • 不完全是,我的应用程序通过 runserver 工作。事实上,甚至我的 helloworld.wsgi 也是通过 apache 工作的。只是当我为自己的应用程序修改 httpd.conf 时,它会产生一个错误......
  • 请编辑您的问题并将您添加的 mod_wsgi 配置添加到 Apache 配置文件中。还要指出你从哪里得到 mod_wsgi 二进制文件,以及在下载和重命名之前它的名称。
  • 尝试重新安装您的 Python 并确保它已为所有用户安装。这个问题曾经出现在 Python 2.7.0(我认为)和升级 Python 帮助。也许如果您在某个时候重新安装了,但在升级时您没有为所有用户安装并且遗漏了一些东西。

标签: python django mod-wsgi apache2.2


【解决方案1】:

虽然重新安装 python 可能会奏效。我发现 _socket 是位于 DLLs 文件夹中的 _socket.pyd 文件,通过将其添加到 Windows 中的 pythonpath 中,我能够使我的应用程序工作。谢谢大家的帮助。

【讨论】:

    【解决方案2】:

    尝试将目录“C:\Python27\DLLs”包含/添加到您的 PYTHONPATH 环境变量中。这解决了我系统上 _socket 的问题。如果您检查文件夹,那里有一些文件,包括 _socket.pyd

    【讨论】:

      【解决方案3】:

      您好,我在重新安装 Django 和 Python2.7.3 时遇到了这个问题,这困扰了我将近 2 个小时。最后我通过删除 Python 2.7.3 解决了这个问题,但安装了 Python 2.7.6。希望它也对你有用,祝你好运!

      【讨论】:

        猜你喜欢
        • 2015-08-26
        • 1970-01-01
        • 1970-01-01
        • 2015-07-28
        • 1970-01-01
        • 2017-04-10
        • 1970-01-01
        • 2020-04-01
        • 1970-01-01
        相关资源
        最近更新 更多