Frage

Ich mag experimentieren / spielen, um mit nicht-relationalen Datenbanken, es wäre am besten, wenn die Lösung ist:

  • tragbar, was bedeutet, es keine Installation erfordert. idealerweise einfach kopieren-einfügen Verzeichnis irgendwo würde es funktionieren. Ich habe nichts dagegen, wenn es die Bearbeitung einige Konfigurationsdateien erfordert oder ein Konfigurations-Tool für Verbrauch des ersten Males ausgeführt wird.
  • zugänglich von Python
  • funktioniert auf Windows und Linux

Was können Sie empfehlen für mich?

Im Wesentlichen Ich möchte in der Lage sein, dieses System auf einem gemeinsam genutzten Linux-Server zu installieren, wo ich wenig Benutzerrechte habe.

War es hilfreich?

Lösung

Ich empfehle Ihnen, betrachten BerkelyDB mit Bewusstsein für die Lizenzfragen.

Ich bin immer sehr müde von Menschen BerkleyDB ohne Qualifikation zu empfehlen - man kann nur BDB-Systeme unter dem GPL oder einer unbekannten und nicht öffentlich sichtbar Lizenzgebühr von Oracle verteilen.

„local“ Herumspielen, wo sie nicht in Gebrauch ist von Externen, ist es wahrscheinlich eine gute Idee. Seien Sie sich bewusst sein, dass es eine Lizenz wartet darauf, Sie zu beißen.

Dies ist auch eine Erinnerung daran, dass es eine gute Idee ist, wenn für Technologie Empfehlungen fragen zu sagen, ob oder nicht GPL akzeptabel ist.

meine eigenen Frage über eine portable C-API-Datenbank, während eine Reihe anderer Produkte wurden vorgeschlagen, keines der fest integrierten Python-Bindungen hat.

Andere Tipps

Metakit ist eine interessante nicht-relationalen Embedded-Datenbank, die Python unterstützt.

Die Installation erfordert nur eine einzige gemeinsame Bibliothek und Py-Datei zu kopieren. Es funktioniert auf Windows, Linux und Mac und ist Open Source (MIT-Lizenz).

Wenn Sie eine relationale Datenbank zu denken muss sein, sehr groß und schwer wie PostgreSQL oder MySQL gewohnt sind, dann werden Sie angenehm überrascht von SQLite überrascht sein.

Es ist relational, sehr klein ist, verwendet eine einzelne Datei, hat Python-Bindings, erfordert keine zusätzlichen Privilegien, und läuft auf Linux, Windows und vielen anderen Plattformen.

Haben Sie sich CouchDB ? Es ist nicht-relationale Daten können relativ leicht migriert werden und es hat einen Python-API in Form von couchdb-python . Es hat einige ziemlich ungewöhnliche Abhängigkeiten in Form von Spider und Erlang obwohl

Wie für reine Python-Lösungen, ich weiß nicht, wie weit PyDBLite ist gekommen, aber es könnte Auschecken dennoch wert sein.

BerkeleyDB: (es scheint, dass es eine API ist zu Python-Bindung: http: // www .jcea.es / programacion / pybsddb.htm )

Haben Sie sich unter Zope Object Database ?

Auch SQLAlchemy oder Django ORM Schicht Schema-Management über SQLite macht fast transparent.


Bearbeiten

Starten Sie mit http: // www .sqlalchemy.org / docs / 05 / ormtutorial.html # define-and-Create-A-table SQL-Tabellen zu sehen, wie erstellen und wie sie auf Python-Objekte abzubilden.

Während Ihre Frage vage ist, scheinen Ihre Kommentare zu zeigen, dass Sie die Python-Objekte zuerst definieren möchten, erhalten sind, zu arbeiten, ordnen sie dann auf relationale Schemaobjekte über SQLAlchemy.

Wenn Sie nur kommen und von Python gehen Sie vielleicht denken über die Verwendung von Pickle die Objekte serialisiert werden. Nicht zur Arbeit zu gehen, wenn Sie suchen andere Tools zu verwenden, um die gleichen Daten natürlich zuzugreifen. Es ist in Python gebaut, so dass Sie sollten keine privilegierten Probleme haben, aber es ist nicht eine echte Datenbank, so dass es nicht auf die Bedürfnisse des Experiments entsprechen kann.

eine Referenz Hinzufügen von hier TinyDB da diese Seite ist an der Spitze der vielen Suchanfragen zeigt. Es ist eine tragbare nicht-relationale Datenbank in Python. Es speichert Python dicts in eine lokale JSON-Datei und macht sie für Datenbank-ops zur Verfügung ähnlich wie MongoDB. Es hat auch eine Erweiterung Port mongodb Befehle, mit dem Unterschied, dass statt auf einem anderen System-Server arbeiten Sie auf einer lokalen JSON-Datei in Betrieb sein werden.

Und im Gegensatz zu der gegenwärtig gewählten Antwort, ist es unter einer permissiven MIT offener Lizenz.

Links:

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top