[英]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 -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.