2013-05-24 14 views
5

mam setup Diazo na świeżym Ubuntu 12.04LTS Vagrant oknie, wykonując następujące kroki:lxml: Nieznany includemode lub @method atrybut

  1. apt-get update
  2. apt-get install python-setuptools
  3. apt-get install build-essential python2.7-dev libxslt1-dev
  4. easy_install -U diazo
  5. Postępowano zgodnie z instrukcjami w Diazo Quickstart (dodając najnowszą bootstrap.py)

Przykład diazo w Quickstart działa prawidłowo (z niewielkim dodatkiem read_network = true do [filter:theme]).

Jednak, gdy dodaję mój istniejący projekt (który działa na innych komputerach), pojawia się następujący błąd z bin/paster serve próbując przeglądać serwis

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 

I'ved próbowano ustawienie różni includemodes sugerowane w deployment docs, bez powodzenia.

Jedyna różnica między moim projekcie i demo, że mogę (obecnie) na miejscu, inne niż moich rozszerzonych zasad, jest to, że obejmują xmlns:xi="http://www.w3.org/2001/XInclude"

co jest przyczyną błędu i jak można to naprawić?

+0

Próbowałem zostały również omijając easy_install krok i przypinanie lxml do 2,3 w buildout, ale bez powodzenia. –

+0

Próbowałem również izolowanie buildout w virtualenv bezskutecznie. –

Odpowiedz

0

i napotkałem w jakiś sposób ten sam problem z lxml. spróbuj nie dołączać niczego do pliku xml. , ale wpisz kod bezpośrednio do pliku.

wciąż nie wiem dlaczego tak się dzieje !!

Nadzieję daje przewagę ..