筆者運行環境python
Window xp sp3web
IIS 5.1數據庫
Python 2.7.2 (http://www.python.org/)django
Django-1.3.1 windows
isapi_wsgi-0.4.2-py2.5 api
SQL Server 2005app
pyodbc-3.0.5.win32-py2.7
測試
django-pyodbcgoogle
使用過程當中,用python自帶的web develpment server測試一切正常,但若是部署到IIS上即會出現沒法鏈接數據庫的錯誤,詳細錯誤以下:spa
cannot import pyodbc dll not found
後來查了半天,才發現是pyodbc的一個小bug,項目主頁上給出瞭解決方法
http://code.google.com/p/pyodbc/issues/detail?id=214
簡單的意思是說pyodbc顯示引用了msvcr90.dll庫,因爲個人python web app是被host 在iis裏,因此有可能runtime庫不一致,出現DLL not found。
解決辦法:
我使用了其中一個命令,命令行進入pyodbc.pyd所在的目錄,一般是在[Python27]\Lib\site-packages目錄下
運行下面的命令
mt.exe -inputresource:c:\windows\system32\python27.dll;#2 -outputresource:pyodbc.pyd;#2 (由於沒有找到pyodbcconf.pyd,第二條命令不須要,多是for python27的版本沒有把)
這條命令實際上是把python27.dll引用的symbol抽取出來寫到pyodbc.pyd文件裏,這樣就能夠解決對msvcr90.dll的引用問題
運行以後,若是還有別的錯誤,能夠嘗試從新deploy一下,具體命令能夠參考我另外一篇博文