Domanda

voglio sperimentare / giocare con i database non relazionali, sarebbe meglio se la soluzione era:

  • portatile, il che significa che non richiede l'installazione. idealmente basta copiare-incollare la directory da qualche parte sarebbe farlo funzionare. Non mi importa se si richiede la modifica di alcuni file di configurazione o l'esecuzione di un tool di configurazione per l'utilizzo prima volta.
  • accessibile da python
  • funziona sia su Windows e Linux

Cosa si può consigliare per me?

In sostanza, vorrei essere in grado di installare questo sistema su un server Linux condiviso in cui ho piccoli privilegi utente.

È stato utile?

Soluzione

Vi consiglio di prendere in considerazione BerkelyDB con la consapevolezza dei problemi di licenza.

Io sono sempre molto stanco di persone che raccomandano BerkleyDB senza riserve - si può solo distribuire sistemi BDB sotto licenza GPL o qualche tassa di licenza visibile pubblicamente sconosciuto e non da Oracle.

Per "locale" giocare in giro in cui non è in uso da parte di soggetti esterni, è probabilmente una buona idea. Basta essere consapevoli che c'è una licenza in attesa di mordere.

Questo è anche un promemoria che si tratta di una buona idea quando chiedere consigli tecnologia per dire se GPL è accettabile.

mia domanda su un database API C portatile, mentre una gamma di altri prodotti sono stati suggeriti, nessuno di quelli incorporati hanno binding Python.

Altri suggerimenti

Metakit è un database non relazionale interessante incorporato che supporta Python.

L'installazione richiede semplicemente copiando una singola libreria condivisa e il file .py. Funziona su Windows, Linux e Mac ed è open-source (MIT licenza).

Se siete abituati a pensare un database relazionale deve essere enorme e pesante come PostgreSQL o MySQL, allora sarete piacevolmente sorpresi da SQLite.

E 'relazionale, molto piccolo, utilizza un singolo file, ha binding Python, non richiede privilegi aggiuntivi, e funziona su Linux, Windows e molte altre piattaforme.

Hai guardato CouchDB ? È non relazionale, i dati possono essere migrati con relativa facilità ed ha un'API Python sotto forma di CouchDB-python . Ha alcuni dipendenze piuttosto insoliti in forma di Spidermonkey e Erlang se

Per quanto riguarda le soluzioni in puro Python, non so a che punto PyDBLite è venuto, ma potrebbe essere la pena di verificare comunque.

BerkeleyDB: (sembra che ci sia un'API vincolante per Python: http: // www .jcea.es / programacion / pybsddb.htm )

Hai guardato Zope Object Database ?

Inoltre, SQLAlchemy o strato ORM di Django rende la gestione dello schema sopra SQLite quasi trasparente.


Modifica

http: // www .sqlalchemy.org / docs / 05 / ormtutorial.html # define-e-create-a-tavolo per vedere come creare tabelle SQL e come si mappano oggetti Python.

Mentre la vostra domanda è vaga, i tuoi commenti sembrano indicare che si potrebbe desiderare di definire il Python oggetti primo luogo, ottenere quelli a lavorare, poi mapparli agli oggetti schema relazionale tramite SQLAlchemy.

se siete solo andare e venire da Python si potrebbe pensare di utilizzare Pickle per serializzare gli oggetti. Non andare a lavorare, se stai cercando di utilizzare altri strumenti per accedere agli stessi dati, naturalmente. E 'costruito in python, quindi non dovreste avere problemi privilegiati, ma non è un vero e proprio database in modo che non può soddisfare le esigenze del vostro esperimento.

L'aggiunta di un riferimento alla TinyDB qui poiché questo sito sta mostrando nella parte superiore di molte ricerche. Si tratta di un database non relazionale portatile in python. Memorizza dicts pitone in un file JSON locale e li rende disponibili per ops di database simili a MongoDB. Essa ha anche un'estensione alla porta ai comandi di MongoDB, con la differenza che invece di lavorare su un altro server del sistema sarete operando su un file JSON locale.

E, a differenza della risposta attualmente prescelta, è sotto una licenza aperta MIT permissiva.

Link:

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top