繁体   English   中英

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

[英]lxml: DLL load failed: The specified module could not be found

我有 Windows Server 2008 R2 x64。 Python27 x86 + Django 1.3 + apache 2.2 x86 under wsgi运行Python27 x86 + Django 1.3 + apache 2.2 x86 under wsgi 它在没有 lxml 的情况下运行正常。

我们正在使用soaplib,它需要lxml。 我尝试通过多种方式安装 lxml:

  1. 使用easy_install
  2. 下载win32安装二进制文件。

问题是在 apache 下的站点下运行会引发以下错误:

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

它在from lxml import etree上引发此错误

我用谷歌搜索了解决方案,但没有发现任何有用的东西。 我找到的一些信息:

  1. python26->python27 中有一些变化,改变了包含的 dll
  2. 我使用dependency walker来查找缺少哪些dll。 我发现丢失的是:gpsvc.dll、IEShims.dll、msvcr90.dll。 当我尝试安装 x86 可再发行组件包但它没有改变任何东西时。 我尝试将 msvcr90.dll 复制到 lxml 的 egg dir,它创建了另一个错误,说它无法加载 dll(我不记得确切的异常,但如果需要我可以生成它)

它在通过运行manage.py runserver从 django 内部服务器运行时工作

我该如何解决这个问题? 谢谢。

我从http://www.lfd.uci.edu/~gohlke/pythonlibs/安装了非官方版本

它解决了我的问题。

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

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

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

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

最简单的解决方法是: 第一步:pip卸载lxml 第二步:pip install lxml

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM