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
cheetah compile: UnicodeDecodeError: 'ascii' codec can't dec
-
- User
- Beiträge: 456
- Registriert: Mittwoch 15. April 2009, 14:11
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
Fängt beim Titel an und hört bei deinem Gruß auf.
Ein wenig mehr Info wäre doch schon angebracht.
G
a
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)
$ 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)
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?
http://www.python-forum.de/viewtopic.ph ... ah+unicode
Haben dir die Hinweise dort nicht geholfen?
gruss
marlob
-------------------------------------
Linux Mint 17 + Python 2.7.6
marlob
-------------------------------------
Linux Mint 17 + Python 2.7.6
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

danke

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.
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Anscheinend ja nun schondebian75 hat geschrieben:... ich denke da kann ich mit cheetah nichts falsch machen.

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.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
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
Code: Alles auswählen
str(u"€")
Stefan
Werde, nach Hinweis von Leonidas, auch mal Jinja2 ausprobierenmitsuhiko hat geschrieben:Muss es denn Cheetah sein? Das Ding ist schmerzhaft.

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.
gruss
marlob
-------------------------------------
Linux Mint 17 + Python 2.7.6
marlob
-------------------------------------
Linux Mint 17 + Python 2.7.6
-
- User
- Beiträge: 1790
- Registriert: Donnerstag 28. Oktober 2004, 16:33
- Wohnort: Graz, Steiermark - Österreich
- Kontaktdaten:
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.
TUFKAB – the user formerly known as blackbird