lxml: неизвестный атрибут includemode или @method
Я установил Diazo на новую версию Ubuntu 12.04LTS Vagrant, используя следующие шаги:
apt-get update
apt-get install python-setuptools
apt-get install build-essential python2.7-dev libxslt1-dev
easy_install -U diazo
- Следуйте инструкциям в Diazo Quickstart (добавьте последнюю версию bootstrap.py)
Пример Diazo в Quickstart работает нормально (с незначительным добавлением read_network = true
в [filter:theme]
).
Однако, когда я добавляю свой существующий проект (который работает на других машинах), я получаю следующую ошибку от bin/paster serve
при попытке просмотра сайта
Exception happened during processing of request from ('192.168.33.1', 50171)
Traceback (most recent call last):
File "/home/vagrant/test/eggs/Paste-1.7.5.1-py2.7.egg/paste/httpserver.py", line 1068, in process_request_in_thread
self.finish_request(request, client_address)
File "/usr/lib/python2.7/SocketServer.py", line 323, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "/usr/lib/python2.7/SocketServer.py", line 638, in __init__
self.handle()
File "/home/vagrant/test/eggs/Paste-1.7.5.1-py2.7.egg/paste/httpserver.py", line 442, in handle
BaseHTTPRequestHandler.handle(self)
File "/usr/lib/python2.7/BaseHTTPServer.py", line 340, in handle
self.handle_one_request()
File "/home/vagrant/test/eggs/Paste-1.7.5.1-py2.7.egg/paste/httpserver.py", line 437, in handle_one_request
self.wsgi_execute()
File "/home/vagrant/test/eggs/Paste-1.7.5.1-py2.7.egg/paste/httpserver.py", line 287, in wsgi_execute
self.wsgi_start_response)
File "/home/vagrant/test/eggs/Paste-1.7.5.1-py2.7.egg/paste/urlmap.py", line 203, in __call__
return app(environ, start_response)
File "/home/vagrant/test/eggs/diazo-1.0b1-py2.7.egg/diazo/wsgi.py", line 353, in __call__
transform_middleware = self.get_transform_middleware()
File "/home/vagrant/test/eggs/diazo-1.0b1-py2.7.egg/diazo/wsgi.py", line 342, in get_transform_middleware
tree=self.compile_theme(),
File "/home/vagrant/test/eggs/diazo-1.0b1-py2.7.egg/diazo/wsgi.py", line 337, in compile_theme
xsl_params=xsl_params,
File "/home/vagrant/test/eggs/diazo-1.0b1-py2.7.egg/diazo/compiler.py", line 106, in compile_theme
read_network=read_network,
File "/home/vagrant/test/eggs/diazo-1.0b1-py2.7.egg/diazo/rules.py", line 164, in process_rules
rules_doc = annotate_rules(rules_doc)
File "/home/vagrant/test/eggs/diazo-1.0b1-py2.7.egg/diazo/utils.py", line 49, in __call__
result = self.xslt(*args, **kw)
File "xslt.pxi", line 556, in lxml.etree.XSLT.__call__ (src/lxml/lxml.etree.c:110044)
XSLTApplyError:
ERROR: Unknown includemode or @method attribute
Я пробовал устанавливать разные includemodes
предложено в документах по развертыванию, но безуспешно.
Единственное другое отличие между моим проектом и демонстрацией, которую я могу (в настоящее время) обнаружить, кроме моих расширенных правил, заключается в том, что я включаю xmlns:xi="http://www.w3.org/2001/XInclude"
Что является причиной ошибки и как ее можно исправить?
1 ответ
Я сталкивался как-то с той же проблемой с lxml . постарайтесь ничего не включать в ваш XML-файл. но напишите код прямо в файл.
Я до сих пор не понимаю, почему это происходит!!
Надеюсь, это даст вам преимущество..