Windows

Windows + Django + mod_wsgi = ‘DLL 載入失敗’

  • January 5, 2011

很長一段時間以來,我一直在使用 Python 2.5 來做這一切,但最近升級到 2.7,因為為 2.5 建構東西真的很痛苦。對於 Python 2.7,我還將 mod_wsgi 更新為 3.3。

在 CentOS 上使用 Apache + mod_wsgi 以及在 Windows 和 CentOS 上的 Django 執行伺服器中一切正常,但在 Windows 上使用 Apache + mod_wsgi 則不行。

每當我嘗試訪問我的 Django 應用程序中的頁面時,我都會得到以下資訊(注意 Apache 可以正常啟動):

ImportError at /
DLL load failed: The specified module could not be found.

這是由以下原因引起的:

from Crypto.Cipher import AES

Etree 和其他人會導致完全相同的錯誤,並且不限於任何特定的包。任何帶有 pyd 文件的東西都會失敗。

Google搜尋建議“為所有使用者”重新安裝 Python,但安裝程序不會再為您提供該選項。為了更好地衡量,我嘗試以管理員身份重新安裝 Python 2.7,並告訴它將自己註冊為 Python 的預設版本,但都沒有幫助。

我認為解決方案可能與以下方面有關:

  1. 我在這台機器上安裝了 2.5、2.6 和 2.7 並且 mod_wsgi 可能正在載入 2.5 而不是 2.7 的 DLL。
  2. 與 WSGIPythonPath 有關,我通常不需要設置。

一個對我有用的解決方案允許我使用 Python 2.7(雖然不是很理想),是使用 MingGW 建構 Crypto 模組。下載 Crypto 源碼包並執行setup.py build --compiler=mingw32.

有關更多資訊,請參閱此問題:https ://stackoverflow.com/questions/3706293

我遇到了類似的問題,最終似乎與http://bugs.python.org/issue7833和問題 4120(DLL 地獄的新樣式)有關。

使用 Python 2.5(這些錯誤開始之前的版本)為我解決了這個問題。YMMV。

引用自:https://serverfault.com/questions/180620