Долгое время я использовал Python 2.5, чтобы делать все это нормально, но недавно обновился до 2.7, так как создание материала для 2.5 - настоящая боль. Я также обновил mod_wsgi до 3.3 для Python 2.7.
Все работает нормально с Apache + mod_wsgi в CentOS, а также на сервере запуска Django как в Windows, так и в CentOS, но не с Apache + mod_wsgi в Windows.
Всякий раз, когда я пытаюсь получить доступ к странице в моем приложении Django, я получаю следующее (обратите внимание, что Apache запускается нормально):
ImportError at /
DLL load failed: The specified module could not be found.
Это вызвано такими вещами, как:
from Crypto.Cipher import AES
Etree и другие вызывают ту же ошибку, и она не ограничена какими-либо конкретными пакетами. Все, что связано с файлами pyd, не работает.
Поиск в Google предлагает переустановить Python «для всех пользователей», но программа установки больше не предоставляет вам такой возможности. На всякий случай я попытался переустановить Python 2.7 как администратор, а также сказал ему зарегистрироваться как версия Python по умолчанию, но ни то, ни другое не помогло.
Я думаю, что решение может иметь какое-то отношение к:
Я столкнулся с похожими проблемами, которые в конечном итоге оказались связаны с http://bugs.python.org/issue7833 а также выпуск 4120 (новый стиль DLL ад).
Использование Python 2.5 (версия до появления этих ошибок) решило эту проблему для меня. YMMV.
Решение, которое сработало для меня и позволило мне использовать Python 2.7 (хотя и не очень желательно), - это создать модуль Crypto с MingGW. Загрузите пакет с исходным кодом Crypto и запустите setup.py build --compiler=mingw32
.
См. Этот вопрос для получения дополнительной информации: https://stackoverflow.com/questions/3706293