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.
Suche DB-Interface ohne Installation
- 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 ...
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 ...
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.
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.
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.
Genauer gesagt, gibt es SQlite (was deinen Bedürfnissen wohl nicht entspricht) oder die Möglichkeit, das Protokoll deines DBMS über Sockets zu implementieren.
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
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?
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?
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo lunar!lunar hat geschrieben:Das ist aber nicht in der Standardbibliothek
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.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo ice2k3!ice2k3 hat geschrieben:Ist es sehr komplex, so ein Protokoll über Sockets zu realisieren?
Ja, das ist sehr komplex. Sehr sehr sehr sehr sehr viel komplexer als PostgreSQL installieren und PG8000 verwenden.
Das ist nicht so komplex wie das direkt über Sockets zu machen. Aber warum soll man sich das antun?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?
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.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Für die Linux Plattform kann ich leider nichts kompilieren, diese Möglichkeit scheidet aus.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.
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
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Wende dich an den, der dir die Seite blockiert. Auf dieser Seite http://pybrary.net/pg8000/ ist absolut nichts Unanständiges zu finden.ice2k3 hat geschrieben:Verdammt! Seite ist blockiert (Grund: "Pharmacy" ?!)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
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? OOgerold hat geschrieben:Auf dieser Seite http://pybrary.net/pg8000/ ist absolut nichts Unanständiges zu finden.
- 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
Aber wir driften stark off-topic, denn eine Debatte über Zensur hat mit einem DB-Interface dann doch nichts zu tun
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
Stefan
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo ice2k3!ice2k3 hat geschrieben:Ich werde es jetzt mal mit dem PG8000 versuchen. Aber ist das überhaupt kompatibel mit Python 2.3 ?
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.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
- 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!
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!
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...
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...