Python зависает на lxml.etree.XMLSchema (дереве) с apache mod_wsgi

#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, по крайней мере, это то, что сделало это для меня.