簡體   English   中英

在Apache上運行時加載pyodbc模塊時出錯

[英]Error loading pyodbc module while running on Apache

以前我一直在嘗試使用apache上的虛擬主機托管多個DEMO django項目,並且已成功借助stackoverflow。

現在我一直在嘗試使用與之前相同的技術來托管我的新項目。 我的新項目已連接到sql_server數據庫。 使用djangos內置服務器時,我的項目運行完美。

當我嘗試使用apache運行時,我得到500內部服務器錯誤 ,我的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.exe(在其中鏈接)內部運行來滿足此依賴性。 當python解釋器的dll版本由另一個進程托管時,windows sxs配置僅將msvcr90依賴項應用於python dll。

這意味着,通常,pyodbc.pyd(可能還有pyodbcconf.pyd)在Windows上的嵌入式python中將無法使用,除非主機應用程序鏈接到相應版本的msvc運行時。

使用mt.exe(windows sdk中的免費工具)並在命令行上嘗試命令。

我在哪里可以獲得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

希望這對某人有用。

干杯

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM