lxml:DLL加载失败:找不到指定的模块

时间:2011-08-29 09:14:44

标签: python windows django lxml

我有Windows Server 2008 R2 x64。 它已运行Python27 x86 + Django 1.3 + apache 2.2 x86 under wsgi。没有lxml就可以运行。

我们使用的是soaplib,需要lxml。我试过用几种方法安装lxml:

  1. 使用easy_install
  2. 下载win32安装二进制文件。
  3. 问题是在apache下的站点下运行会引发以下错误:

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

    它在from lxml import etree

    上引发了此错误

    我已经google搜索解决方案,但没有发现任何有用的信息。我找到的一些信息:

    1. python26-> python27发生了一些变化,改变了包含dll的内容
    2. 我使用依赖步行器来查找缺少哪些dll。我发现缺少的是:gpsvc.dll,IEShims.dll,msvcr90.dll。当我尝试安装x86可再发行组件包但它没有改变任何东西。我尝试将msvcr90.dll复制到lxml的egg目录,它创建了另一个错误,表示它没有加载dll(我不记得确切的异常但我可以在需要时生成它)
    3. 通过运行manage.py runserver

      从django内部服务器运行时,它可以正常工作

      如何解决此问题?感谢。

4 个答案:

答案 0 :(得分:10)

我从http://www.lfd.uci.edu/~gohlke/pythonlibs/

安装了非官方版本

它解决了我的问题。

答案 1 :(得分:3)

尝试通过Windows Scripting Host加载etree时,我也遇到了这个问题。在尝试了不同的方法之后,我遇到了这个Python 3.1更改,它提出新的Python模块不应再嵌入清单,因为它会导致分发问题而没有安装MSVC ++运行时:

所以我只是在Resource Hacker(http://www.angusj.com/resourcehacker/)中加载了%PythonPath%\ Lib \ site-packages \ lxml \ etree.pyd并删除了嵌入其中的清单资源。

答案 2 :(得分:2)

安装DLL是不够的,你需要摆弄Apache才能使用它们。参见:

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

答案 3 :(得分:0)

最简单的解决方案是: 第一步:pip卸载lxml步骤 2:pip安装lxml

但是,在通过 lxml-4.6.3.tar.gz 重新安装 lxml 时,我遇到了问题。 于是,我尝试通过对应的.whl文件重新安装,成功了!