lxml: загрузка DLL не удалась: указанный модуль не найден - PullRequest
7 голосов
/ 29 августа 2011

У меня 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.

Проблема заключается в том, что при работе под сайтом под apache возникает следующая ошибка:

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

Возникает эта ошибка на from lxml import etree

Я нашел решение, но ничего полезного не нашел.Некоторая информация, которую я нашел:

  1. Что-то изменилось в python26-> python27, который меняет то, что включают dll
  2. Я использовал средство обхода зависимостей, чтобы найти, какие dll отсутствуют.Я нашел недостающие: gpsvc.dll, IEShims.dll, msvcr90.dll.Когда я попытался установить распространяемый пакет x86, но это ничего не изменило.Я попытался скопировать msvcr90.dll в dir яйца lxml, и он создал другую ошибку, которая сказала, что он не может загрузить dll (я не помню точное исключение, но я могу сгенерировать его при необходимости)

Он работает при запуске с внутреннего сервера django с помощью команды manage.py runserver

Как я могу решить эту проблему?Спасибо.

Ответы [ 3 ]

10 голосов
/ 30 августа 2011

Я установил неофициальные сборки от http://www.lfd.uci.edu/~gohlke/pythonlibs/

Это решило мою проблему.

3 голосов
/ 17 октября 2011

У меня также была эта проблема при попытке загрузить etree через Windows Scripting Host. Попробовав разные подходы, я наткнулся на это изменение в Python 3.1, в котором предлагается, чтобы новые модули Python больше не встраивали манифесты, поскольку это вызывает проблемы с распространением без установленной среды выполнения MSVC ++:

Итак, я просто загрузил% PythonPath% \ Lib \ site-packages \ lxml \ etree.pyd в Resource Hacker (http://www.angusj.com/resourcehacker/) и удалил встроенный в него ресурс манифеста.

2 голосов
/ 30 августа 2011

Установка DLL не достаточно, вам нужно будет Apache возиться, чтобы использовать их. См:

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

...