Suche DB-Interface ohne Installation

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Hallo.
Suche eine Schnittestelle zu einer Datenbank, die ohne Installation läuft.
Datenbank muss a) als Server laufen können und b) Freeware / OpenSource sein.
Pythonversion ist leider zwangsläufig die 2.3

Hoffe ihr könnt mir helfen.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Was meinst Du mit "ohne Installation"? Dateien in irgend ein Verzeichnis kopieren und das soll dann out of the box lauffähig sein? (Was man ja dennoch Installation nennen könnte ;-) )

Ich glaube da wirst Du Pech haben!

Zudem: Die Installation eines RDBMS ist ja idR das geringste Problem - die richtige (sichere) Konfiguration kostet da eher Zeit und Nerven!

Was genau bezweckst Du denn? Ggf. fällt uns ja ein workaround ein ...
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

War vielleicht nicht verständlich erklärt.
Die Datenbank kann ruhig zum Installieren sein. (Wobei z.B. MySQL durchaus problemlos portable laufen kann...)

Nur die Pythonschnittstelle nicht. Also dass man nur bestimmte Module als Ordner zu dem Programm hinzupackt und verbindet sich damit zur DB.
Das Programm muss halt mit der Standardbibliothek lauffähig sein.

Solche Dinge wie das Installieren mit build wie bei der MysqlDB Schnittstelle darf es halt nicht geben.
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Nochmal ganz konkret:
Suche eine Möglichkeit einer Datenbankverbindung mit der Python Standardbibliothek.

Ist sowas überhaupt möglich?
lunar

Einfach gesagt: Nein.

Genauer gesagt, gibt es SQlite (was deinen Bedürfnissen wohl nicht entspricht) oder die Möglichkeit, das Protokoll deines DBMS über Sockets zu implementieren.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Hallo!

Für Windows, Linux, ...?

Für PostgreSQL gibt es z.B. http://pybrary.net/pg8000/

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
lunar

Das ist aber nicht in der Standardbibliothek ;)
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Ist es sehr komplex, so ein Protokoll über Sockets zu realisieren? Wo finde ich dazu entsprechende Spezifikationen?

Als DB kommen meiner Meinung in Frage: MySQL, PostgreSQL oder MS SQL Server.

Muss unter Linux UND Windows laufen.

Alternative wäre noch einen eigenen DB-Server in Python zu schreiben, der dann SQLite verwendet. Aber das wäre auch nicht einfacher wie die Socket-Realisierung, oder?
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

lunar hat geschrieben:Das ist aber nicht in der Standardbibliothek ;)
Hallo lunar!

Das Problem ist für den OP ja das Installieren (make && make install) und nicht das Dazukopieren des Treibers in das eigene Pythonprojekt. Man muss nur den "pg8000"-Ordner in den eigenen Projektordner kopieren und beim Verteilen des Programmes mitverteilen -- schon kann man pg8000 verwenden. Es muss nichts installiert werden.

So ähnlich würde es mit allen anderen Treibern funktionieren, wenn man für eine fix definierte Plattform entwickelt. Dann kompiliert man den Treiber für die entsprechende Plattform und liefert diesen einfach mit seinem eigenen Projekt mit.

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

ice2k3 hat geschrieben:Ist es sehr komplex, so ein Protokoll über Sockets zu realisieren?
Hallo ice2k3!

Ja, das ist sehr komplex. Sehr sehr sehr sehr sehr viel komplexer als PostgreSQL installieren und PG8000 verwenden.

ice2k3 hat geschrieben:Alternative wäre noch einen eigenen DB-Server in Python zu schreiben, der dann SQLite verwendet. Aber das wäre auch nicht einfacher wie die Socket-Realisierung, oder?
Das ist nicht so komplex wie das direkt über Sockets zu machen. Aber warum soll man sich das antun? :-)

mfg
Gerold
:-)
Zuletzt geändert von gerold am Montag 19. Januar 2009, 13:37, insgesamt 1-mal geändert.
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

gerold hat geschrieben:So ähnlich würde es mit allen anderen Treibern funktionieren, wenn man für eine fix definierte Plattform entwickelt. Dann kompiliert man den Treiber für die entsprechende Plattform und liefert diesen einfach mit seinem eigenen Projekt mit.
Für die Linux Plattform kann ich leider nichts kompilieren, diese Möglichkeit scheidet aus.
Aber das pg8000 schau ich mir mal an, könnte funktionieren.

Verdammt! Seite ist blockiert (Grund: "Pharmacy" ?!)

Könnte mir das jemand als *zip zukommen lassen? >>PN
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

ice2k3 hat geschrieben:Verdammt! Seite ist blockiert (Grund: "Pharmacy" ?!)
Wende dich an den, der dir die Seite blockiert. :-) Auf dieser Seite http://pybrary.net/pg8000/ ist absolut nichts Unanständiges zu finden.
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

gerold hat geschrieben:Auf dieser Seite http://pybrary.net/pg8000/ ist absolut nichts Unanständiges zu finden.
Wobei es wohl fragwürdig ist Zugang zu Arzeimitteln zu blockieren oO. Ich kenne ja die Filterbrgründung "Malaysian Porn" auf deutschen Seiten ... aber Arzneimittel? OO
Pekh
User
Beiträge: 482
Registriert: Donnerstag 22. Mai 2008, 09:09

Du hast n guten Spamfilter, oder? :D

Weil sonst wüßtest du, um welche "Arzneimittel" es hier geht ...
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Naja das ist mir schon klar - so gut trainiert ist mein SpamAssasin leider nicht :(, aber ich sehe da absolut keinen Nutzen den Zugang zu sperren.
Aber wir driften stark off-topic, denn eine Debatte über Zensur hat mit einem DB-Interface dann doch nichts zu tun :)
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Das Protokoll von mysql (Kommunikation über ein Socket) ist nicht sonderlich schwer zu implementieren. Am Aufwendigsten ist es noch, den Login hinzubekommen. SQL-Befehle werden quasi im Klartext geschickt, Resultsets kann man mit wenig Aufwand zerlegen. Kann man alles in reinem Python machen.

Stefan
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Ich werde es jetzt mal mit dem PG8000 versuchen.
Aber ist das überhaupt kompatibel mit Python 2.3 ?
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

ice2k3 hat geschrieben:Ich werde es jetzt mal mit dem PG8000 versuchen. Aber ist das überhaupt kompatibel mit Python 2.3 ?
Hallo ice2k3!

Ich habe auf die Schnelle nur das Fehlen des "decimal"-Moduls entdeckt. Dieses Modul ist bei Python 2.3 noch nicht mit dabei. Aber vielleicht genügt es, wenn du das "decimal"-Modul einer neueren Python-Version in den "pg8000"-Ordner kopierst.

Probiere es einfach mal aus.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Ohne die Diskussion in eine andere Richtung lenken zu wollen, oder die Sachlage anzweifeln zu wollen, aber: Gibt es denn wirklich keine Möglichkeit, ein neueres Python und/oder externe Module zu installieren? Wer genau gibt denn da die Vorgaben?

Anscheinend soll es doch irgend wie um einen Datenbankzugriff gehen. Sind das nicht arg viele Verränkungen, nur um das zu realisieren? Da rückt man doch weit vom eigentlichen Problem ab, nur um eines zu lösen, welches sich ohne diese Beschränkungen gar nicht ergibt!

Daher könnte es doch eher sinnvoll sein, die Zeit zur Aufhebung dieser Einschränkungen zu nutzen, anstatt da drum herum zu programmieren!

Ist nur so ein Einwurf - kann ja auch durchaus sein, dass es wirklich keine andere Möglichkeit gibt!
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Es handelt sich um die Steuerungen von CNC Fräsmaschinen mit einer festen Linux-Konfiguration.
Nein, da kann ich nichts machen.
Naja, muss mal schauen, ob ich das pg8000 zum Laufen bringen.

Das Problem sind (außer die decimal) auch noch die finally statements und die mit @ (Was machen die überhaupt? Sind die notwendig?)

Die decimal lässt sich auch nicht 1:1 importieren :(
Auch wieder die Sachen mit @

Langsam wird das eine recht schwammige Sache...
Antworten