我在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”操作系统上编译。
答案 0 :(得分:1)
尝试这种向Apache添加新清单的方法。
答案 1 :(得分:1)
与pyodbc存在同样的问题。
用它来查找和复制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>
使用Resource Hacker打开pyodbc.pyd并将其粘贴到树中(在树24/2下):