PyCrypto не загружается с mod_wsgi на сервере Windows 2008

У меня есть проект, созданный на 64-разрядной версии Windows 2008 Server с Apache 2.2, mod_wsgi 3.3, django 1.2 и python 2.7 (32-разрядная версия).

Я установил PyCrypto 2.3 (для 32-битного Python 2.7) с помощью установщика, найденного на VoidSpace: 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, которые оказались отсутствующими. Затем они были скопированы как в каталог Windows System32, так и в каталог SysWOW64.

Приложение DependencyWalker теперь показывает только «Отложенные» ошибки зависимостей, но не блокирует функциональность.

Я видел связанную проблему: Почему никакие библиотеки DLL Python, созданные с помощью MSVC, не загружаются с mod_wsgi?

Однако, как я уже говорил ранее, установка с помощью установщиков VoidSpace НЕ решила проблему.

Я попытался скомпилировать с помощью MinGW32, и я получаю сообщение об ошибке, в котором говорится, что он не знает, как компилировать в операционной системе «nt».


person Chris Lefevre    schedule 10.02.2012    source источник


Ответы (2)


Попробуйте этот метод добавления нового манифеста в Apache.

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

person Graham Dumpleton    schedule 11.02.2012
comment
Извините, что возвращаюсь к этому так поздно, но на самом деле это сработало отлично. - person Chris Lefevre; 28.02.2012

Была такая же проблема с pyodbc.

  1. Взломанный хакер ресурсов: http://www.angusj.com/resourcehacker/

  2. Использовал его, чтобы найти и скопировать зависимость от MSVCR90 в python27/python.exe (под деревом 24/1):

    <dependentAssembly>
        <assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity> 
    </dependentAssembly>
    
  3. Открыл pyodbc.pyd с помощью Resource Hacker и вставил его в дерево (под деревом 24/2):

person dugloon    schedule 08.01.2013