Yogi hat geschrieben:Windows (später Debian) mit CherrPy, PostgreSQL, SQLAlchemy und Mako bzw. Genshi (da werde ich erst einmal das nehmen, wo ich mich wohler fühle und mal sehen).
Vor allem bei Mako solltest du dabei achten - und das haben Gerold und Y0Gi schon gemeint - dass du dort so wenig Python-Code wie möglichst einbaust. Das ist auch so schon eine gute Idee, da Templates mit eingebettetem Python-Code in den meisten Editoren absolut ätzend zu bearbeiten ist.
Genshi hat den Nachteil das es langsamer ist und dass es (hauptsächlich) XML ist. Wobei letzteres je nach Anforderungen auch ein Vorteil sein kann. Ich nutze sowohl Genshi als auch andere, nicht-XML-basierte Templatesprachen und bin eigentlich mit beidem Recht zufrieden. Genshi ist besonders anfangs etwas ungewohnt.
Yogi hat geschrieben:Einzig was den Ersatz für Twisted betrifft (ist das wirklich overkill und so komplex? ) bin ich mir noch nicht sicher. Kamaelia ist wies aussieht nur für Linux, Allegra blicke ich noch nicht durch, Medusa wurde schon seit 2003 nicht mehr angepackt, und zu asyncore habe ich zumindest ein nettes Tut gefunden (
asyncore Tut). Aber wo finde ich was zu der Verwendung der Protokolle UDP und TCP? Ich konnte nicht erkennen, dass die direkt in diesen Paketen unterstützt werden.
Twisted ist gar nicht so schwer finde ich. Erfordert nur anfangs etwas Einarbeitungszeit, aber das ist es wohl auch Wert. asnycore ist der Teil von Medusa der es in die Stdlib geschafft hat, also solltest du dort mal reingucken. Medusa ist dann "the real thing" und da es nur das Grundgerüst bietet ist es auch nicht mehr nötig dort Sachen zu ändern (aber ich gebe zu, es wird nur von wenigen verwendet, Teils auch weil asyncore schon reicht). Allegra ist eine Art aufgebohrtes Medusa, von einem der gemeint hat Twisted gehe den falschen Weg.
Und die Protokollunterstützung für TCP und UDP (aber noch nicht SCTP *g*) kommt aus dem `sockets` modul. Das ist eine Ebene tiefer und wird von Python bereitgestellt und von allen aufgeführten Modulen im Kern benutzt. Da brauchst du dich auch nicht drum kümmern.
Also wenn ich so etwas machen sollte, würde ich mal sehen was für Anforderungen da sind. Wenn es einfach nur funktionieren soll, dann asyncore. Wenn es hingegen viele Features haben soll und auf einer stabilen Basis stehen soll dann Twisted. Wenn ich neue Wege ausprobieren wollte dann würde ich Kamaelia nehmen (mir persönlich ist Windows-Unterstützung in dem Fall ziemlich egal und auch dann könnte man einen Client für Windows schreiben der asyncore oder Twisted nutzt, wenn die Leistung von kamaelia auf dem Server stimmt).
Wie BlackJack sagte: erwarte nicht dass es beim ersten mal hinhaut. Manchmal ist es nötig Komponenten neu zu schreiben, weil man das inzwischen besser versteht, es neue Möglichkeiten gibt, weil die Wege die man eingeschlagen hat für die Tonne sind oder weil der ursprüngliche Code nicht wartbar ist.