Seite 1 von 1
cheetah compile: UnicodeDecodeError: 'ascii' codec can't dec
Verfasst: Donnerstag 15. Juli 2010, 23:38
von debian75
hallo leute
bekomme oben genannten error, wenn ich eine name.tmpl datei compilen will. cheetah version ist 2.4.2.
kann mir jemand sagen wie ich das weg bekomme?
grüsse
d
Re: cheetah compile: UnicodeDecodeError: 'ascii' codec can't
Verfasst: Freitag 16. Juli 2010, 02:14
von anogayales
Vorbildlicher Thread:
Fängt beim Titel an und hört bei deinem Gruß auf.
Ein wenig mehr Info wäre doch schon angebracht.
G
a
Re: cheetah compile: UnicodeDecodeError: 'ascii' codec can't
Verfasst: Freitag 16. Juli 2010, 07:15
von debian75
Hmm..was fehlt denn an info? Hier das komplette log:
$ cheetah compile -R
Drilling down recursively from current directory.
Compiling hauptvorlage.tmpl -> hauptvorlage.py
/home/debian75/lib/python2.5/Cheetah-2.4.2.1-py2.5-linux-i686.egg/Cheetah/Compiler.py:1509: UserWarning:
You don't have the C version of NameMapper installed! I'm disabling Cheetah's useStackFrames option as it is painfully slow with the Python version of NameMapper. You should get a copy of Cheetah with the compiled C version of NameMapper.
"\nYou don't have the C version of NameMapper installed! "
Traceback (most recent call last):
File "/home/debian75/bin/cheetah", line 5, in <module>
pkg_resources.run_script('Cheetah==2.4.2.1', 'cheetah')
File "/usr/local/lib/python2.5/site-packages/pkg_resources.py", line 448, in run_script
self.require(requires)[0].run_script(script_name, ns)
File "/usr/local/lib/python2.5/site-packages/pkg_resources.py", line 1166, in run_script
execfile(script_filename, namespace, namespace)
File "/home/debian75/lib/python2.5/Cheetah-2.4.2.1-py2.5-linux-i686.egg/EGG-INFO/scripts/cheetah", line 3, in <module>
_cheetah()
File "/home/debian75/lib/python2.5/Cheetah-2.4.2.1-py2.5-linux-i686.egg/Cheetah/CheetahWrapper.py", line 620, in _cheetah
CheetahWrapper().main()
File "/home/debian75/lib/python2.5/Cheetah-2.4.2.1-py2.5-linux-i686.egg/Cheetah/CheetahWrapper.py", line 148, in main
meth()
File "/home/debian75/lib/python2.5/Cheetah-2.4.2.1-py2.5-linux-i686.egg/Cheetah/CheetahWrapper.py", line 231, in compile
self._compileOrFill()
File "/home/debian75/lib/python2.5/Cheetah-2.4.2.1-py2.5-linux-i686.egg/Cheetah/CheetahWrapper.py", line 380, in _compileOrFill
self._compileOrFillBundle(b)
File "/home/debian75/lib/python2.5/Cheetah-2.4.2.1-py2.5-linux-i686.egg/Cheetah/CheetahWrapper.py", line 596, in _compileOrFillBundle
compilerSettings=compilerSettings)
File "/home/debian75/lib/python2.5/Cheetah-2.4.2.1-py2.5-linux-i686.egg/Cheetah/Template.py", line 740, in compile
settings=(compilerSettings or {}))
File "/home/debian75/lib/python2.5/Cheetah-2.4.2.1-py2.5-linux-i686.egg/Cheetah/Compiler.py", line 1575, in __init__
source = unicode(source)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xff in position 0: ordinal not in range(128)
Re: cheetah compile: UnicodeDecodeError: 'ascii' codec can't
Verfasst: Freitag 16. Juli 2010, 08:09
von marlob
So ein Problem hattest du vor 3 Jahren auch schon mal.
http://www.python-forum.de/viewtopic.ph ... ah+unicode
Haben dir die Hinweise dort nicht geholfen?
Re: cheetah compile: UnicodeDecodeError: 'ascii' codec can't
Verfasst: Freitag 16. Juli 2010, 09:55
von debian75
wow, was für ein erinnerungsvermögen

ich muss mir das mal wieder durchlese, weil ich habe seitdem nichts mehr gross gemacht mit python. diesmal habe ich das problem aber schon beim compilieren des templates...war damals anders glaubs.
danke

Re: cheetah compile: UnicodeDecodeError: 'ascii' codec can't
Verfasst: Freitag 16. Juli 2010, 15:54
von mitsuhiko
Muss es denn Cheetah sein? Das Ding ist schmerzhaft.
Re: cheetah compile: UnicodeDecodeError: 'ascii' codec can't
Verfasst: Freitag 16. Juli 2010, 19:10
von marlob
mitsuhiko hat geschrieben:Muss es denn Cheetah sein? Das Ding ist schmerzhaft.
Was bevorzugst du denn?
Re: cheetah compile: UnicodeDecodeError: 'ascii' codec can't
Verfasst: Freitag 16. Juli 2010, 19:42
von Leonidas
Jinja2, seine eigene Template Engine. Und meinen Erfahrungen mit Cheetah und Jinja2 zu folgen - zu recht.
Re: cheetah compile: UnicodeDecodeError: 'ascii' codec can't
Verfasst: Freitag 16. Juli 2010, 23:32
von debian75
muss nicht cheetah sein, nur kenne ich das halt ein ganz kleines bisschen. meine projekte sind nicht gross genug als dass ich auf die template engine wert legen müsste...ist relativ egal was ich nehme, ich denke da kann ich mit cheetah nichts falsch machen.
Re: cheetah compile: UnicodeDecodeError: 'ascii' codec can't
Verfasst: Samstag 17. Juli 2010, 09:10
von Hyperion
debian75 hat geschrieben:... ich denke da kann ich mit cheetah nichts falsch machen.
Anscheinend ja nun schon
Ob klein oder nicht, ich würde mir jinja2 definitiv mal ansehen und da einen kleinen Mehraufwand in Kauf nehmen. Imho lohnt sich das auf Dauer.
Re: cheetah compile: UnicodeDecodeError: 'ascii' codec can't
Verfasst: Samstag 17. Juli 2010, 09:50
von sma
Der Fehler lässt sich z.B. so reproduzieren:
Du (oder Cheetah) versuchst einen Unicode-String, der ein Zeichen außerhalb des ASCII-Bereichs (Codepoint 0 bis 127) enthält, in einen Bytestring zu verwandeln. Das geht schief. Finde und vermeide diesen Unicode-String.
Stefan
Re: cheetah compile: UnicodeDecodeError: 'ascii' codec can't
Verfasst: Montag 19. Juli 2010, 06:50
von marlob
mitsuhiko hat geschrieben:Muss es denn Cheetah sein? Das Ding ist schmerzhaft.
Werde, nach Hinweis von Leonidas, auch mal Jinja2 ausprobieren
Nach lesen der Doku hört es sich auf jeden Fall nach einer interessanten Alternative an.
Mich würde aber interessieren wo "Das Ding" deiner Meinung (oder auch von anderen) nach schmerzhaft ist?
Ich arbeite in der Automatisierungsbranche und benutze Python + Cheetah um aus meinen gegebenen Kundendaten (die in Excel, XML, csv oder Datenbanken vorliegen) die entsprechende Symbolik, Code für die Steuerung, Dokumentation und Testlisten zu erzeugen. Was mit Cheetah bisher ganz gut funktioniert.
Mich würde aber trotzdem die "schmerzhaften Stellen" interessieren um nicht später mal gegen unlösbare Probleme zu laufen.
Re: cheetah compile: UnicodeDecodeError: 'ascii' codec can't
Verfasst: Montag 19. Juli 2010, 08:15
von mitsuhiko
Variablen werden bei Cheetah auf das Template gebunden und nicht auf einen Context, wie bei anderen Template engines. Damit ist es eine nicht triviale Augabe das ganze Ding threadsafe zu machen.