PyCrypto在Windows Server 2008上没有加载mod_wsgi

时间:2012-02-10 17:00:03

标签: windows mod-wsgi pycrypto

我在Windows 2008 Server 64位上设置了一个项目,包括Apache 2.2,mod_wsgi 3.3,django 1.2和python 2.7(32位)。

我使用VoidSpace上的安装程序安装了PyCrypto 2.3(32位python 2.7): http://www.voidspace.org.uk/python/modules.shtml#pycrypto

当我尝试通过解释器导入PyCrypto模块时,它完美地运行。然后我使用:manage.py runserver

运行Django服务器

这也按预期执行,CSS和其他静态图像无法正常显示,但网站运行正常。

当使用mod_wsgi和Apache时,我得到一个导入错误,并注意到DLL无法加载。

完整的堆栈跟踪已发布在pastebin上: http://pastebin.com/hav7sqB0

我使用DependencyWalker查看可能缺少的依赖项,并下载了所有似乎缺失的DLL。然后将它们复制到System32 Windows目录和SysWOW64目录。

DependencyWalker应用程序现在只显示“延迟”依赖项错误,但没有阻止功能。

我确实看到了相关问题: Why do no Python DLLs built with MSVC load with mod_wsgi?

但是,正如我之前所说,使用VoidSpace安装程序进行安装并不能解决问题。

我尝试使用MinGW32进行编译,我收到错误声明它不知道如何在“nt”操作系统上编译。

2 个答案:

答案 0 :(得分:1)

尝试这种向Apache添加新清单的方法。

http://groups.google.com/group/modwsgi/msg/afb025dc949c7051

答案 1 :(得分:1)

与pyodbc存在同样的问题。

  1. 抓住资源黑客: http://www.angusj.com/resourcehacker/

  2. 用它来查找和复制python27 / python.exe中的MSVCR90依赖项(在树24/1下):

    <dependentAssembly>
        <assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity> 
    </dependentAssembly>
    
  3. 使用Resource Hacker打开pyodbc.pyd并将其粘贴到树中(在树24/2下):