【问题标题】:Error loading pyodbc module while running on Apache在 Apache 上运行时加载 pyodbc 模块时出错
【发布时间】:2012-11-18 13:43:47
【问题描述】:

以前我一直在尝试使用apache上的虚拟主机托管多个DEMO django项目,并在stackoverflow的帮助下成功。

现在我一直在尝试使用与以前相同的技术来托管我的新项目。我的新项目已连接到 sql_server 数据库。使用 djangos 内置服务器时,我的项目运行完美。

当我尝试使用 apache 运行时,我收到 500 Internal Server Error 并且我的 apache 错误日志显示 -

Exception occurred processing WSGI script 

ImproperlyConfigured: Error loading pyodbc module: DLL load failed: A dynamic link library (DLL) initialization routine failed.

我的 wsgi 文件看起来像这样 -

import os
import sys

path = 'C:/path/project1'
if path not in sys.path:
    sys.path.append(path)

os.environ["DJANGO_SETTINGS_MODULE"] = "settings"

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

我的机器中确实有 "C:\Windows\SysWOW64\python27.dll"

我的系统 - Windows 7、Apache 2.2、python 2.7、django 1.4.2

我在我的机器上发现的另一个信息 - win32 上的 Python 2.7(r27:82525,2010 年 7 月 4 日,09:01:59)[MSC v.1500 32 位(英特尔)]

有什么解决办法吗??

非常感谢各位...

【问题讨论】:

    标签: python django apache mod-wsgi pyodbc


    【解决方案1】:

    我设法解决了这个问题,花了几个小时谷歌搜索答案后,终于找到了答案here,它说:

    似乎通过在 python.exe 内部运行来满足这种依赖关系(它与相同的链接)。当 python 解释器的 dll 版本由另一个进程托管时,windows sxs 配置仅将 msvcr90 依赖项应用于 python dll。

    这意味着,一般情况下,pyodbc.pyd(可能还有 pyodbcconf.pyd)将无法在 Windows 上的嵌入式 python 中使用,除非 主机应用程序与适当版本的 msvc 运行时。

    使用 mt.exe(windows sdk 中免费提供的工具)并尝试命令行上的命令。

    Where do I get mt.exe?

    mt.exe -inputresource:c:\windows\syswow64\python27.dll;#2 -outputresource:pyodbc.pyd;#2
    
    mt.exe -inputresource:c:\windows\syswow64\python27.dll;#2 -outputresource:pyodbcconf.pyd;#2
    

    希望这对某人有用。

    干杯

    【讨论】:

    • 我没有 pyodbcconf.pyd,但执行第一个命令有效 - 谢谢!
    • 运行 mt.exe c:\Python32\Lib\site-packages 时出现错误>"c:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin\mt. exe" -inputresource:c:\windows\syswow64\python32.dll;#2 -outputresource:pyodbc.pyd;#2 Microsoft (R) Manifest Tool version 6.1.7716.0 版权所有 (c) Microsoft Corporation 2009。保留所有权利。 mt.exe:一般错误 c101008c:无法从文件“c:\windows\syswow64\python32.dll”的资源中读取清单。系统找不到指定的文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多