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

2024-10-01 09:21:24 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

  1. 使用简易安装
  2. 正在下载win32安装二进制文件。

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

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

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

我在谷歌上寻找解决办法,但没有发现任何有用的东西。我发现了一些信息:

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

当通过运行manage.py runserver从django内部服务器运行时,它可以工作

我怎样才能解决这个问题?谢谢。


Tags: djangowsgiserverwindowsapache错误lxmlx86
3条回答

安装dll还不够,您需要摆弄Apache来使用它们。见:

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

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

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

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

它解决了我的问题。

相关问题 更多 >