Exception Value: 'str' object is not callable

Django, Flask, Bottle, WSGI, CGI…
Antworten
Drownie
User
Beiträge: 2
Registriert: Dienstag 27. März 2012, 23:14

Hallo!

Ich arbeite noch nicht sehr lange mit Zope und bin schon das erste mal am verzweifeln. Es muss ein Update von einem relativ alten Zope/ZMS-Stystem gemacht werden. Nun gibt es dann zwei Produkte, die auf dem Zielserver nicht mehr funktionieren. Auf Zope2.10.3(mit Python2.4.4) funktionierte dieses noch. Auf dem neuen Server ist Zope2.12 (mit Python 2.6.7) aufgespielt.

Nun erhalte ich bei der Ansicht diesen Fehler: "Exception Value 'str' object is not callable"
Module ZPublisher.Publish, line 127, in publish
Module ZPublisher.mapply, line 77, in mapply
Module ZPublisher.Publish, line 47, in call_object
Module App.special_dtml, line 72, in __call__
Module DocumentTemplate.DT_String, line 477, in __call__
Module DocumentTemplate.DT_Let, line 77, in render
Module App.special_dtml, line 72, in __call__
Module DocumentTemplate.DT_String, line 477, in __call__
Module DocumentTemplate.DT_In, line 707, in renderwob
Module DocumentTemplate.DT_Let, line 77, in render
Module DocumentTemplate.DT_In, line 630, in renderwob
Module DocumentTemplate.DT_Util, line 202, in eval
__traceback_info__: metaObj
Module <string>, line 1, in <module>

TypeError: 'str' object is not callable
Ich frage mich nun, was sich so grundlegendes zwischen diesen beiden Python-Versionen verändert hat, dass dieses Produkt nun nicht mehr funktioniert.

Ich habe wirklich lange gegoogelt und hoffe jetzt hier Hilfe zu finden.


Vielen Dank im Voraus.
BlackJack

@Drownie: Da hat sich sehr sicher nichts an Python verändert — Zeichenketten waren noch nie aufrufbar. Etwas in Zope wird sich verändert haben.
Drownie
User
Beiträge: 2
Registriert: Dienstag 27. März 2012, 23:14

Vielen Dank für die schnelle Antwort, BlackJack. So etwas habe ich befürchtet.

Kann man aus der Fehlermeldung demnach schliessen, dass eine früher definierte Funktion/Class, nun geändert/umbenannt bzw. entfernt wurde?

MfG
lunar

@Drownie: Nein, dass kann man nicht. Man kann allenfalls daraus schließen, dass irgendwo eine Zeichenkette zurückgegeben oder übergeben wird, wo eigentlich ein aufrufbares Objekt erwartet wird.

Warum diese Fehlermeldung auftritt, kann ich Dir nicht sagen. Gott sei Dank kenne ich Zope nicht. Ich glaube, dass diese Frage in einem zope-spezifischen Medien (z.B. der Zope-Mailingliste) besser aufgehoben ist. Zudem kannst Du mit den Entwicklern der betroffenen Produkte in Kontakt treten.
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Irgendwo in einem Template steht ein Fragment Python-Code `foo()` mit beliebigem `foo`, welches mit `eval` ausgeführt werden soll und in der Variablen `foo` steckt ein String, keine Funktion, die man aufrufen kann. Das würde ich aus dem Stacktrace schließen.

Stefan
Antworten