0

我在 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 模块时,它运行良好。然后我使用以下命令运行 Django 服务器:manage.py runserver

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

当使用 mod_wsgi 和 Apache 时,我得到了一个导入错误,以及 DLL 加载失败的注释。

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

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

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

我确实看到了相关问题: 为什么没有使用 MSVC 构建的 Python DLL 使用 mod_wsgi 加载?

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

我曾尝试使用 MinGW32 进行编译,但我收到错误消息,指出它不知道如何在“nt”操作系统上编译。

4

2 回答 2

1

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

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

于 2012-02-11T05:02:31.553 回答
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 下):

于 2013-01-08T17:53:48.967 回答