2013-05-24 2 views
5

Ich habe Setup Diazo auf einer frischen Ubuntu 12.04LTS Vagrant Box, mit den folgenden Schritten:lxml: Unbekannt includemode oder @method Attribut

  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. Befolgen Sie die Anweisungen in Diazo Quickstart (Hinzufügen der neuesten bootstrap.py)

Das Diazo Beispiel in dem Quickstart funktioniert gut (mit dem kleinen Zusatz von read_network = true-[filter:theme]).

Allerdings, wenn ich mein vorhandenes Projekt hinzufügen (die auf anderen Maschinen funktioniert), erhalte ich die folgende Fehlermeldung aus bin/paster serve beim Versuch, die Website

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 anzuzeigen versucht Einstellung verschiedener includemodes in der vorgeschlagenen deployment docs, ohne Erfolg.

Der einzige andere Unterschied zwischen meinem Projekt und der Demo das kann ich (noch) vor Ort, andere als meine erweiterten Regeln ist, dass ich xmlns:xi="http://www.w3.org/2001/XInclude"

umfassen, was den Fehler verursacht, und wie kann es beheben?

+0

Ich habe auch versucht, die easy_install Schritt übersprungen und lxml bis 2,3 in buildout Pinning, ohne Erfolg. –

+0

Ich habe auch versucht, den Buildout innerhalb eines virtualenv zu isolieren, ohne Erfolg. –

Antwort

0

Ich konfrontiert irgendwie das gleiche Problem mit Lxml. Versuchen Sie, nichts in Ihre XML-Datei aufzunehmen. aber schreiben Sie den Code direkt in die Datei.

ich weiß immer noch nicht, warum das passiert !!

Hoffe, es gibt Ihnen einen Vorsprung ..