#python #apache #mod-wsgi #lxml #xml-validation
#питон #апач #мод-wsgi #lxml #xml-проверка
Вопрос:
Python зависает на
lxml.etree.XMLSchema(дерево)
когда я использую его на сервере apache mod_wsgi (Windows)
Когда я использую Django dev server — все работает нормально
если вы знаете о другом хорошем решении для проверки XML против XSD, скажите мне, пожалуйста
Обновить:
Я использую soaplib, который использует lxml
logger.debug("схема построения...") self.схема = etree.XMLSchema(etree.parse(f)) logger.debug("схема %r построена, очистка ..." % self.schema)
Я вижу «построение схемы …» в журналах apache, но я не вижу «построение схемы %r, очистка …»
Обновление 2: я создал lxml 2.3 с MSVS 2010 visual C ; впоследствии он вылетает в этой строке
self.schema = etree.XMLSchema(etree.parse(f))
с необработанным исключением в 0x7c919af2 в httpd.exe : 0xC0000005: Местоположение записи с нарушением доступа 0x00000010.
Комментарии:
1. (1) «повесьте трубку на etree. XMLSchema (дерево)» передает очень мало информации — что именно вы имеете в виду? (2) Я уверен, что
lxml
разработчики были бы очень обеспокоены, узнав о существовании проблемы;lxml
похоже, это очень надежный продукт, не склонный к «зависанию» или поломке — подумайте о том, чтобы сообщить о своей проблеме вlxml
списке рассылки или багтрекере.2. upd мой вопрос, добавьте немного информации
Ответ №1:
Обходной путь, который я использовал, заключается в установке:
WSGIApplicationGroup %{GLOBAL}
Комментарии:
1. Ссылка не работает. Некоторая полезная информация о том, что это означает, здесь: code.google.com/p/modwsgi/wiki /…
Ответ №2:
У меня была такая же проблема (lxml 2.2.6, mod_wsgi 3.2). Обходной путь для этого заключается в передаче файла или имени файла конструктору: XMLSchema(file=).
Ответ №3:
У меня была похожая проблема в системе Linux. Попробуйте установить более свежую версию libxml2 и переустановить lxml, по крайней мере, это то, что сделало это для меня.