Django & Postgresql - welcher Treiber (statt psycopg2)?

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
ed42
User
Beiträge: 10
Registriert: Sonntag 28. Dezember 2008, 00:20

Sonntag 28. Dezember 2008, 00:54

Hallo,
möchte nach einigen Jahren von PHP-Webprogrammierung nun ein neues Projekt mal in einer "besseren Welt" starten, und die Wahl fiel auf Python.

Als Web-Framework habe ich mir Django ausgeguckt, da das gut dokumentiert scheint und öfter empfohlen wurde.
Eingesetzt werden soll das ganze für ernsthafte (=teils geschäftliche) Anwendungen. Ich betreibe weiterhin einen Debian-Webserver (im RZ), und PostgreSQL 8.3.x als Datenbank; beides soll so bleiben.

Die Installation von Python und Django hat via Debian gut geklappt, als DB-Treiber habe ich das Debian-Paket 'python-psycopg2' genommen, da psycopg2 hier im Forum öfter empfohlen wurde. - Läuft nun auch alles.

Was mir allerdings unangenehm aufstösst, dass der DB-treiber psycopg2 scheinbar nicht mehr unterstützt wird, die Site initd.org/tracker/psycopg/... wird (offenbar bereits seit Januar 2008) als Beschwerde-Seite genutzt, andere Quellen/Autoren für diesen Code gibt es offenbar nicht.
Das kann man so keinem Geschäftskunden weiter empfehlen, ein DB-Treiber ist ja eine nicht unwesentliche Komponente.

Welche Alternativen zu psycopg2 sind bekannt, die zuverlässig und performant arbeiten und aktuell gepflegt werden?

Falls es für die Kombination Django-Postgres keine gute Alternative gibt, wie sähe es mit einem anderen Python-Framework aus?
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Sonntag 28. Dezember 2008, 02:27

Hi ed42, willkommen im Forum,
ed42 hat geschrieben:Welche Alternativen zu psycopg2 sind bekannt, die zuverlässig und performant arbeiten und aktuell gepflegt werden?
psycopg2 ist bekannt, performant und zuverlässig. Das aktuelle Release ist vom 16. September 2008 also recht aktuell und asmodai sieht man ab und zu im IRC (z.B. in #pocoo) so dass man von unmaintained eigentlich nicht sprechen kann.

Theoretisch könnte man wohl auch andere DB-API 2.0 kompatible Bindings nutzen, nur setzt so ziemlich jedes Framework und ORM auf psycopg und warum auch nicht.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
Käptn Haddock
User
Beiträge: 168
Registriert: Freitag 24. März 2006, 14:27

Sonntag 28. Dezember 2008, 08:47

Ja, die hatten dieses Jahr ein schwerwiegendes Problem mit ihrer Seite. Aber es wird wohl nach wie vor weiterentwickelt.

CU Uwe
---------------------------------
have a lot of fun!
ed42
User
Beiträge: 10
Registriert: Sonntag 28. Dezember 2008, 00:20

Sonntag 28. Dezember 2008, 17:57

Hmm, wenn der Maintainer aktiv ist, verstehe ich nicht warum die Seite so aussieht:
http://www.initd.org/pub/software/psycopg/

Bin dann auch bei meiner recherche diverse mal auf der Seite mit dem trac-Rant gelandet:
http://www.initd.org

Wie gesagt, ich kann damit leben, aber eine strategische Empfehlung an einen Kunden, mit welcher Architektur er die nächsten Jahre arbeiten möge, kann man dafür nicht guten Gewissens aussprechen.

Aber vielleicht ist Python/Django in der Business-Welt ohnehin fehl am Platze .. ?
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Sonntag 28. Dezember 2008, 21:43

ed42 hat geschrieben:Hmm, wenn der Maintainer aktiv ist, verstehe ich nicht warum die Seite so aussieht:
http://www.initd.org/pub/software/psycopg/

Bin dann auch bei meiner recherche diverse mal auf der Seite mit dem trac-Rant gelandet:
http://www.initd.org
Du hast dir gerade selbst deine Frage beantwortet? Die Seite sieht so aus, aus den Gründen die im Rant genannt werden. Außerdem wird dort erklärt, dass dieser Zustand schon noch geändert ist.

Ich kann dich auf meine Webseite verweisen, die seit einiger Zeit, also genauer seit dem 1.11.2006, nun also zwei Jahren nur eine einzelne statische Seite ist mit einem Link auf ein Directory Listing. Dennoch, die Seite dient ihrem Zweck ziemlich optimal und ich denke auch nicht dass ich an dem status quo bald etwas ändern werde.
ed42 hat geschrieben:Wie gesagt, ich kann damit leben, aber eine strategische Empfehlung an einen Kunden, mit welcher Architektur er die nächsten Jahre arbeiten möge, kann man dafür nicht guten Gewissens aussprechen.
Seit wann sind startegische Entscheidungen vom Buntheitsgrad der Webseiten abhängig? Ich nutze bereits seit Jahren mod_fcgid was mir treue Dienste leistet. Dessen Homepage ist hässlich und oft down oder langsam, jedoch haben sie das brauchbarste FastCGI-Modul für Apache. Im Vergleich dazu FastCGI.com, die erst Monate später Untersützung für Apache 2.2 hatten (und wo die Lizenz afair immer noch non-free ist). Welches ist nun strategisch sinnvoller? Ein gut funktionierendes oder eines dass den HTTPD segfaultet aber dafür eine hübsche Webseite hat?
ed42 hat geschrieben:Aber vielleicht ist Python/Django in der Business-Welt ohnehin fehl am Platze .. ?
Aus welchen Gründen? Den einzige Grund den du bisher genannt hast ist eine hübsche Webseite, der ganz ehrlich, ziemlich bedeutungslos ist. So gesehen müsste Ruby auch besser sein als Python, weil die Ruby-Webseite toller ausschaut. Und Windows toller als Microsoft, weil microsoft.com gut aussieht und kernel.org eben nicht viel mehr als ein Directory-Listing ist. Jetzt würden mich aber mal die richtigen Gründe interessieren, warum du meinst dass Python fehl am Platz wäre.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
lunar

Sonntag 28. Dezember 2008, 23:33

ed42 hat geschrieben:Was mir allerdings unangenehm aufstösst, dass der DB-treiber psycopg2 scheinbar nicht mehr unterstützt wird, die Site initd.org/tracker/psycopg/... wird (offenbar bereits seit Januar 2008) als Beschwerde-Seite genutzt, andere Quellen/Autoren für diesen Code gibt es offenbar nicht.
Das kann man so keinem Geschäftskunden weiter empfehlen, ein DB-Treiber ist ja eine nicht unwesentliche Komponente.
Es ist deine Sache, welche Software du nutzt, aber die Website als alleiniges Entscheidungskriterium für oder gegen eine Software zu nutzen, ist ein bisschen fragwürdig. Du hast dir ja offenbar noch nicht mal das Commit-Log des Repos durchgelesen, sonst wüsstest du, dass der letzte Commit aus dem November diesen Jahres kommt.
Welche Alternativen zu psycopg2 sind bekannt, die zuverlässig und performant arbeiten und aktuell gepflegt werden?
Alternativen gibt es, z.B. pyPgSQL. Über Zuverlässigkeit und Performance kann ich nichts sagen, gepflegt ist es jedenfalls nicht mehr. Das letzte Release ist zwei Jahre alt, gleiches gilt für die Commits im Repository.

Aber bitte – die Website ist schöner. Leider steht halt nur das Datum des letzten Release da ... blöde Sache.
Falls es für die Kombination Django-Postgres keine gute Alternative gibt, wie sähe es mit einem anderen Python-Framework aus?
Der Treiber hat nichts mit dem Framework zu tun. Wenn du psycopg2 nicht magst, dann hilft auch der Wechsel eines Frameworks nichts. Die anderen nutzen alle SQLAlchemy als ORM, das ebenfalls nur mit psycopg2 arbeitet.

Was auch nicht weiter verwundert, denn das ist nun mal der Postgre-Treiber für Python, und wird – entgegen deiner Vermutung – auch aktiv entwickelt.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Sonntag 28. Dezember 2008, 23:40

lunar hat geschrieben:
Welche Alternativen zu psycopg2 sind bekannt, die zuverlässig und performant arbeiten und aktuell gepflegt werden?
Alternativen gibt es, z.B. pyPgSQL. Über Zuverlässigkeit und Performance kann ich nichts sagen, gepflegt ist es jedenfalls nicht mehr. Das letzte Release ist zwei Jahre alt, gleiches gilt für die Commits im Repository.
Gerold listet noch weitere Bindings, die reichen von "letztes Release war 2003" bis "letztes Release ist noch keinen Monat her".
lunar hat geschrieben:
Falls es für die Kombination Django-Postgres keine gute Alternative gibt, wie sähe es mit einem anderen Python-Framework aus?
Der Treiber hat nichts mit dem Framework zu tun. Wenn du psycopg2 nicht magst, dann hilft auch der Wechsel eines Frameworks nichts. Die anderen nutzen alle SQLAlchemy als ORM, das ebenfalls nur mit psycopg2 arbeitet.
Theoretisch könnte man die Sachen wohl auch auf andere Bindings portieren, soweit sie eben DB-API 2.0 kompatibel sind. Kann man sogar selbst machen, aber es ist eben ein wenig sinnfrei, weil psycopg2 durchaus gut funktioniert. Sonst hätte das ja auch schon längst jemand gemacht.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
ed42
User
Beiträge: 10
Registriert: Sonntag 28. Dezember 2008, 00:20

Montag 29. Dezember 2008, 23:07

Leonidas hat geschrieben:Die Seite sieht so aus, aus den Gründen die im Rant genannt werden.
Seit 11 Monaten gab es also keine Möglichkeit, ein paar HTML-Zeilen zu schreiben?
Seit wann sind startegische Entscheidungen vom Buntheitsgrad der Webseiten abhängig? ... Homepage ist hässlich .. eine hübsche Webseite ..
Wie kommst du auf die Idee, dass ich (oder meine Kunden) Buntheit oder Schönheit an dieser Seite vermissen?

Was ich kritisierte, war ".. dass der DB-treiber psycopg2 scheinbar nicht mehr unterstützt wird", und dieser Eindruck entsteht schlicht daraus, dass der Maintainer die Kritik an anderer Software offenbar wichtiger findet als die Information über den Stand seiner eigenen. Das lässt den Schluss zu, dass er bei einem neu auftretenden Fehler (mit zB PostgreSQL 8.4) es dann auch nicht so wichtig findet, psycopg2 anzupassen.

Ein simple HTML-Datei dieser Art würde reichen:

Code: Alles auswählen

<html><body bgcolor="white">
<h1>psycopg2</h1>
<p>This is the homepage of the psycopg2 driver that connects Python with the PostgreSQL database. <br\>
The latest version is x.y and is tested working  with Python up to 2.x.y and PostgreSQL up to 8.x.y. </p>
<p>Download the latest version of psycopg2 <a href="xyz">here</a>.</p>
<p>Peter Pan, psycopg2 maintainer, September 2008</p>
</body><html>
Mein braucht also keine Buntheit, keinen Designer und nicht einmal ein (sic) Framework, um die Software im Web "angemessen zu repräsentieren". Ok?
Jetzt würden mich aber mal die richtigen Gründe interessieren, warum du meinst dass Python fehl am Platz wäre.
Die Frage dazu war eine offene Frage, keine rethorische.
Wenn ich der einzige Django-Anwender bin, der auf solche "Oberflächlichkeiten" achtet, wäre das aber auch eine Art von Antwort.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dienstag 30. Dezember 2008, 01:25

ed42 hat geschrieben:
Leonidas hat geschrieben:Die Seite sieht so aus, aus den Gründen die im Rant genannt werden.
Seit 11 Monaten gab es also keine Möglichkeit, ein paar HTML-Zeilen zu schreiben?
Schreib doch welche und schicke sie ein :)
ed42 hat geschrieben:Wie kommst du auf die Idee, dass ich (oder meine Kunden) Buntheit oder Schönheit an dieser Seite vermissen?
Weil du die Homepage anmängelst obwohl es vor nicht allzu langer Zeit ein Release gab, obwohl im Repository durchaus Aktivität ist, obwohl die Maintainer im IRC erreichbar sind (zumindest einer), obwohl so ziemlich jedes Python-Projekt das auf Postgres zugreift psycopg nutzt.
ed42 hat geschrieben:Was ich kritisierte, war ".. dass der DB-treiber psycopg2 scheinbar nicht mehr unterstützt wird", und dieser Eindruck entsteht schlicht daraus, dass der Maintainer die Kritik an anderer Software offenbar wichtiger findet als die Information über den Stand seiner eigenen.
Er hat doch Releases. Du solltest deine Eindrücke mit Fakten gegenprüfen.
ed42 hat geschrieben:Das lässt den Schluss zu, dass er bei einem neu auftretenden Fehler (mit zB PostgreSQL 8.4) es dann auch nicht so wichtig findet, psycopg2 anzupassen.
Hast du so einen Fehler?
ed42 hat geschrieben:
Jetzt würden mich aber mal die richtigen Gründe interessieren, warum du meinst dass Python fehl am Platz wäre.
Die Frage dazu war eine offene Frage, keine rethorische.
Wenn ich der einzige Django-Anwender bin, der auf solche "Oberflächlichkeiten" achtet, wäre das aber auch eine Art von Antwort.
Wenn die Homepage von psycopg das größte Problem ist, was Django hat, dann würde es niemanden mehr geben der etwas anderes nutzt.

Außerdem ist die Sache mit Maintainern eben immer so.. du kannst dich nicht darauf verlassen dass Dinge sofort ausgebessert werden. Einige meiner Bugreports in Django selbst sind schon jahrelang offen und wenn ich mir GNOME anschaue und alte Bugs wie alte Freunde wiedererkenne dann sieht man dass die Leute eben nicht vollzeit daran arbeiten können.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
ed42
User
Beiträge: 10
Registriert: Sonntag 28. Dezember 2008, 00:20

Dienstag 30. Dezember 2008, 14:12

Leonidas hat geschrieben:"Seit 11 Monaten gab es also keine Möglichkeit, ein paar HTML-Zeilen zu schreiben?"
Schreib doch welche und schicke sie ein :)
Der HTML-Code ist doch nun oben abgedruckt. Gib mir den (S)FTP-Account (per PM) und die für x.y jeweils einzutragenden Versionsnummern und ich lade es hoch.
Weil du die Homepage anmängelst obwohl es vor nicht allzu langer Zeit ein Release gab, obwohl im Repository durchaus Aktivität ist, obwohl die Maintainer im IRC erreichbar sind (zumindest einer), obwohl so ziemlich jedes Python-Projekt das auf Postgres zugreift psycopg nutzt.
Das kriegt man aber erst nach einiger Recherche heraus. Der erste Eindruck von dem Projekt ist, hier sagt jemand "ich mag nicht mehr", und dieser Eindruck ist _schädlich_.
Er hat doch Releases. Du solltest deine Eindrücke mit Fakten gegenprüfen.
Nein, es ist erstmal Job des Maintainers, die Entwicklung seines Codes auch sichtbar zu dokumentieren. Sei es ganz sparsam, s.o.
Wenn die Homepage von psycopg das größte Problem ist, was Django hat, dann würde es niemanden mehr geben der etwas anderes nutzt.
Na, da bin ich halt bei meinem Setup als Erstes drüber gestolpert.
.. du kannst dich nicht darauf verlassen dass Dinge sofort ausgebessert werden. ...
Klaro, und das ist ja bei kommerziellen Produkten nicht anders.
Nur ist es hier nicht einfach nur ein Unterlassen, sondern dieser "rant" klingt schon eher nach der Botschaft, dass man hier die Identifikation mit der Aufgabe nicht mehr erwarten dürfe.
Scheint ja nach deinen Hinweisen ein Trugschluß zu sein, hoffen wir dass es so ist.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dienstag 30. Dezember 2008, 14:24

ed42 hat geschrieben:Der HTML-Code ist doch nun oben abgedruckt. Gib mir den (S)FTP-Account (per PM) und die für x.y jeweils einzutragenden Versionsnummern und ich lade es hoch.
Ich bin nicht der Maintainer, aber spricht mal asmodai oder fog an, Adressen gibt es auf der psycopy2-PyPI-Seite. Und sag ihnen dass sie das aktuelle Release dort mal hochladen sollen ;)
ed42 hat geschrieben:Das kriegt man aber erst nach einiger Recherche heraus. Der erste Eindruck von dem Projekt ist, hier sagt jemand "ich mag nicht mehr", und dieser Eindruck ist _schädlich_.
Ich habe aus dem Text eher "Trac saugt" rausgelesen und wenn man initd.org kennt, dann weiß man dass es seit Jahren Probleme mit deren Trac gab.
ed42 hat geschrieben:
Er hat doch Releases. Du solltest deine Eindrücke mit Fakten gegenprüfen.
Nein, es ist erstmal Job des Maintainers, die Entwicklung seines Codes auch sichtbar zu dokumentieren. Sei es ganz sparsam, s.o.
Nein, eigentlich nicht. Der Maintainer macht was ihm passt und recht ist. Wenn er seinen Code veröffentlicht dann kannst du ihn nutzen aber daraus kannst du keine Forderungen ableiten, siehe hier. Bei Postgres-Interfaces sehe ich aber keine Probleme, da selbst wenn pyscopg nicht mehr weiterentwickelt werden würde, der Bedarf für so ein Interface groß genug ist dass ein anderes Projekt seinen Platz einnimmt.
ed42 hat geschrieben:
Wenn die Homepage von psycopg das größte Problem ist, was Django hat, dann würde es niemanden mehr geben der etwas anderes nutzt.
Na, da bin ich halt bei meinem Setup als Erstes drüber gestolpert.
Die meisten machen wohl einfach ``easy_install pyscopg2`` und bekommen die Homepage nie zu Gesicht.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
ed42
User
Beiträge: 10
Registriert: Sonntag 28. Dezember 2008, 00:20

Montag 12. Januar 2009, 11:31

Ich habe aus dem Text eher "Trac saugt" rausgelesen und wenn man initd.org kennt, dann weiß man dass es seit Jahren Probleme mit deren Trac gab.
Aber warum muss man diese Erfahrung den Interessenten an psycopg vor die Nase setzen?
Der Maintainer macht was ihm passt und recht ist. Wenn er seinen Code veröffentlicht dann kannst du ihn nutzen aber daraus kannst du keine Forderungen ableiten, ...
Es geht auch nicht um irgendwelche "Forderungen", sondern um den Imageschaden, der durch solches Auftreten entsteht.

Bei Postgres-Interfaces sehe ich aber keine Probleme, da selbst wenn pyscopg nicht mehr weiterentwickelt werden würde, der Bedarf für so ein Interface groß genug ist dass ein anderes Projekt seinen Platz einnimmt.
Du meinst "keine technischen Probleme".
Imageschaden siehe oben.
Die meisten machen wohl einfach ``easy_install pyscopg2`` und bekommen die Homepage nie zu Gesicht.
Wer Doku liesst, und das wird ja immer mal wieder empfohlen, landet aber früher oder später bei diesem rant. ZB auch von hier:
http://www.postgresql.org/docs/8.3/inte ... faces.html
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Montag 12. Januar 2009, 12:42

ed42 hat geschrieben:
Ich habe aus dem Text eher "Trac saugt" rausgelesen und wenn man initd.org kennt, dann weiß man dass es seit Jahren Probleme mit deren Trac gab.
Aber warum muss man diese Erfahrung den Interessenten an psycopg vor die Nase setzen?
Weil der Autor ein Mensch und keine Firma hat und kein Image halten muss um Produkte zu verkaufen.
ed42 hat geschrieben:Es geht auch nicht um irgendwelche "Forderungen", sondern um den Imageschaden, der durch solches Auftreten entsteht.
Ich sehe da keinen Imageschaden, finde es nur blöd, dass es keine Online-Dokumentation gibt. Aber das Image kann dem Autor doch völlig egal sein. Meine Homapage ist auch nur ein Directory-Listing, eine Index-Seite auf der im großen und ganzen nur ein SVG ist, und ein nicht verlinktes hgweb sowie ein ebenfalls nirgendwo verlinktes gitweb. Muss ich mir um mein Image Sorgen machen?
ed42 hat geschrieben:Du meinst "keine technischen Probleme".
Imageschaden siehe oben.
Ne, keine substantiellen Probleme, siehe unten.
ed42 hat geschrieben:
Die meisten machen wohl einfach ``easy_install pyscopg2`` und bekommen die Homepage nie zu Gesicht.
Wer Doku liesst, und das wird ja immer mal wieder empfohlen, landet aber früher oder später bei diesem rant. ZB auch von hier:
http://www.postgresql.org/docs/8.3/inte ... faces.html
Wer Doku liest ließt dass Django psycopg2 braucht, wie man es installiert und braucht sich um den Rest nicht zu kümmern.

Hast du schon deine Verbesserungen an der Autor geschickt?

Andererseits, wie wäre es wenn du den schlechten Zustand von MySQLdb verbesserst? MySQLdb hat zwar durchaus eine Homepage, die dem User erklärt wie er dem Autor Geld schenkt aber ist eben technisch nicht so recht brauchbar. Und es gibt niemanden der MySQL nutzen will, somit verbessert niemand MySQLdb.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
lunar

Montag 12. Januar 2009, 13:03

ed42, willkommen in der Welt der freien Software. Der Autor will sein Produkt nicht verkaufen, ergo auch kein Image pflegen, da es ihm mehr oder weniger egal sein kann, ob sein Code genutzt wird oder nicht. Zumal er durch technische Qualität überzeugt hat, und ihm das wohl auch bewusst ist. Schließlich ist sein Projekt nun mal der Postgre-Treiber.

Wenn dir die Website nicht passt, dann kannst du ihn ja für Verbesserungen bezahlen.
ed42
User
Beiträge: 10
Registriert: Sonntag 28. Dezember 2008, 00:20

Dienstag 13. Januar 2009, 13:58

Die Person des Autors bzw Maintainers ist nicht wichtig, sondern seine Botschaft über diese Software: Dies ist Nerd-Software, gemacht aus der Haltung eines launischen Genies.
Wenn du selbst ein launisches Genie bist, dann wirst du das sicher verstehen.
Wenn du dagegen Verantwortung für eine Organisation trägst, dann geh besser zu Java, Microsoft oder PHP, wo die Wichtigtuer bzw die Dummen sitzen.

Sorry, von wegen "willkommen in...", ich arbeite seit 12 Jahren mit open-source Software, da bin ich sensibel geworden, was die implizite Botschaft solcher Auftritte betrifft.

Nachtrag, zu "Wenn dir die Website nicht passt, ..." - es geht nicht darum, was (mir) gefällt, sondern was man einem Kaufmann empfehlen kann zu benutzen.
Also, vielleicht sagt man ja "Django ist nicht für diese Szene gemacht".
Zuletzt geändert von ed42 am Dienstag 13. Januar 2009, 19:42, insgesamt 1-mal geändert.
Antworten