【问题标题】:PyCrypto not loading with mod_wsgi on Windows server 2008PyCrypto 未在 Windows 服务器 2008 上使用 mod_wsgi 加载
【发布时间】:2012-02-10 17:00:03
【问题描述】:

我在 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 应用现在仅显示“延迟”依赖错误,但没有任何阻止功能的内容。

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

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

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

【问题讨论】:

    标签: windows mod-wsgi pycrypto


    【解决方案1】:

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

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

    【讨论】:

    • 很抱歉这么晚才回来,但这实际上工作得很好。
    【解决方案2】:

    pyodbc 也有同样的问题。

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

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

      <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):

    【讨论】:

      猜你喜欢
      • 2016-02-01
      • 2013-06-25
      • 1970-01-01
      • 2013-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-15
      • 1970-01-01
      相关资源
      最近更新 更多