Was ist das hier für ein Wert? (cheetah)

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
asdfgqw
User
Beiträge: 33
Registriert: Samstag 3. Februar 2007, 10:45

Samstag 9. Februar 2008, 13:53

Stammt aus einem Cheetah template.

Das Problem ist das $archive.
#from atomi import atom
#from StringIO import StringIO
#import re
#if $age > 90 and not($archive)
Status: 410 Gone
#else
Content-Type: application/atom+xml; charset=utf-8
und
so
weiter
Ist das eine Unix variable oder etwas das ich zum Beispiel in einer config.py setzen muss?

Ich bekomme diesen Fehler:
CGI Failure

traceback:Traceback (most recent call last):
File "/var/www/htdocs/index.cgi", line 91, in ?
print response
File "/var/lib/python-support/python2.4/Cheetah/Template.py", line 981, in __str__
def __str__(self): return getattr(self, mainMethName)()
File "/var/www/htdocs/template/atom.py", line 97, in respond
data = VFN(VFFSL(SL,"atomize",False)([item['filename'] for item in VFFSL(SL,"Items",True)],StringIO(),VFFSL(SL,"Items",True),VFFSL(SL,"archive",True)),"getvalue",True)
NotFound: cannot find 'archive'
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Samstag 9. Februar 2008, 15:21

asdfgqw hat geschrieben:Stammt aus einem Cheetah template.

Code: Alles auswählen

#from atomi import atom
#from StringIO import StringIO
#import re
#if $age > 90 and not($archive)
Status: 410 Gone
#else
Content-Type: application/atom+xml; charset=utf-8
und 
so
weiter
Hallo asdfgqw!

Man kann so nicht sagen woher diese Variable stammen soll. Aus dem von dir gezeigten Code geht nichts dergleichen hervor.

Aber ich habe auch noch nie gesehen, dass jemand *re* oder *StringIO* in eine Textvorlage importiert. So etwas hat darin einfach nichts zu suchen. So etwas lagert man in ein Python-Modul aus... :?

mfg
Gerold
:-)
[url]http://halvar.at[/url] | [url=http://halvar.at/elektronik/kleiner_bascom_avr_kurs/]Kleiner Bascom AVR Kurs[/url]
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
asdfgqw
User
Beiträge: 33
Registriert: Samstag 3. Februar 2007, 10:45

Donnerstag 28. Februar 2008, 10:57

Danke für die Antwort. Ich habe jetzt einiges getestet, aber nichts funktioniert. Das ist die volle Fehlermeldung, vielleicht hilft die etwas:
CGI Failure

traceback:Traceback (most recent call last):
File "/var/www/htdocs/gateway.cgi", line 91, in ?
print response
File "/var/lib/python-support/python2.4/Cheetah/Template.py", line 981, in __str__
def __str__(self): return getattr(self, mainMethName)()
File "/var/www/htdocs/template/atom.py", line 97, in respond
data = VFN(VFFSL(SL,"atomize",False)([item['filename'] for item in VFFSL(SL,"Items",True)],StringIO(),VFFSL(SL,"Items",True),VFFSL(SL,"archive",True)),"getvalue",True)
NotFound: cannot find 'archive'
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Donnerstag 28. Februar 2008, 12:42

Du hast ein Template in dem du eine Variable referenzierst, die nicht definiert ist. Und du wunderst dich?

Versuch mal das:

Code: Alles auswählen

print apfelmus
Und? Tut das? Warum sollte also dein Template funktionieren, wenn du ``archive`` nicht definierst?
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

Donnerstag 28. Februar 2008, 22:44

ich finde der Beitrag sollte verschoben werden... hier unter Codesnippets hat das ja nun eigentlich nix zu suchen ;)

Edit (Leonidas): In der Tat... verschoben.
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
asdfgqw
User
Beiträge: 33
Registriert: Samstag 3. Februar 2007, 10:45

Freitag 29. Februar 2008, 11:15

Leonidas hat geschrieben:Du hast ein Template in dem du eine Variable referenzierst, die nicht definiert ist. Und du wunderst dich?

Versuch mal das:

Code: Alles auswählen

print apfelmus
Und? Tut das? Warum sollte also dein Template funktionieren, wenn du ``archive`` nicht definierst?
Die Frage ist wo wird das definiert?

Das was ich hier habe ist ein komplettes blog system das in python geschrieben wurde. Ich habe alle Dateien. Es funktioniert auch alles bis auf dieses eine feature. Gesteuert wird alles über eine config.py in der alle Variablen hinterlegt sind. Das "archive" steht aber dort nicht drin. Ich habe versucht mit

class directory:
archive = "/var/www/htdocs/"

das zu lösen. Ich dachte auch es sei mit einem export Eintrag in der profile zu lösen. Aber nix.
BlackJack

Freitag 29. Februar 2008, 11:36

Woher sollen wir wissen wo das definiert wird? Bzw. ist es ja offensichtlich dass es nirgends definiert wird. ;-)

Frag doch beim Autor des Quelltextes nach.
Antworten