Question

Je veux expérimenter / jouer avec des bases de données non relationnelles, ce serait mieux si la solution était:

  • portable, ce qui signifie qu'il ne nécessite pas d'installation. idéalement juste coller copier le répertoire à un endroit serait le faire fonctionner. Cela ne me dérange pas si cela nécessite la modification des fichiers de configuration ou l'exécution d'un outil de configuration pour la première utilisation du temps.
  • accessible depuis python
  • fonctionne sur Windows et linux

Que pouvez-vous me conseillez?

Pour l'essentiel, je voudrais être en mesure d'installer ce système sur un serveur linux partagé où j'ai petits privilèges utilisateur.

Était-ce utile?

La solution

Je vous recommande de considérer BerkelyDB avec la conscience des problèmes de licence.

Je reçois très fatigué des gens qui recommandent BerkleyDB sans qualification - vous ne pouvez distribuer les systèmes BDB sous licence GPL ou une inconnue et non des frais de licence publiquement visible d'Oracle.

Pour « locale » jouer autour d'où il est utilisé par des parties externes, il est probablement une bonne idée. Il faut juste savoir qu'il ya une licence en attente de vous mordre.

Il est aussi un rappel qu'il est une bonne idée en demandant des recommandations technologiques pour dire si oui ou non GPL est acceptable.

De mon question sur une base de données API portable C, tandis qu'une gamme d'autres produits ont été proposés, aucun de ceux embarqués ont des liaisons Python.

Autres conseils

Metakit est une base de données intéressante intégrée non-relationnelle qui prend en charge Python.

L'installation nécessite la copie une seule bibliothèque partagée et le fichier .py. Il fonctionne sur Windows, Linux et Mac et est open-source (MIT sous licence).

Si vous avez l'habitude de penser une base de données relationnelle doit être énorme et lourd comme PostgreSQL ou MySQL, vous serez agréablement surpris par SQLite.

Il est relationnel, très petite, utilise un seul fichier, a des liaisons Python, ne nécessite pas de priviledges supplémentaires, et fonctionne sur Linux, Windows, et bien d'autres plates-formes.

Avez-vous regardé CouchDB ? Il est des données non relationnelles, peuvent être migrées avec une relative facilité et il a une API Python sous forme de CouchDB-python . Il a quelques dépendances assez inhabituelles sous la forme de Spidermonkey et Erlang si

En ce qui concerne les solutions pures de python, je ne sais pas dans quelle mesure le long PyDbLite est venu mais il pourrait être utile de vérifier quand même.

BerkeleyDB: (il semble qu'il existe une API python se liant à: http: // www .jcea.es / programacion / pybsddb.htm )

Avez-vous regardé Zope Base de données de l'objet?

En outre, SQLAlchemy ou la couche ORM de Django rend la gestion du schéma sur SQLite presque transparent.


Modifier

Commencez par http: // www .sqlalchemy.org / docs / 05 / ormtutorial.html # define-et-créer une table pour voir comment créer des tables SQL et comment ils représentés par des objets Python.

Bien que votre question est vague, vos commentaires semblent indiquer que vous pouvez définir les objets Python d'abord, obtenir les travailler, les mapper puis à des objets de schéma relationnel via SQLAlchemy.

Si vous n'aller et venir de Python que vous pourriez penser à utiliser Pickle pour sérialiser les objets. Ne pas aller travailler si vous êtes à la recherche d'utiliser d'autres outils pour accéder aux mêmes données bien sûr. Il est construit en python, donc vous ne devriez pas avoir de problèmes privilégiés, mais ce n'est pas une base de données vrai il ne peut pas répondre aux besoins de votre expérience.

Ajout d'une référence à TinyDB ici depuis cette page montre en haut de nombreuses recherches. Il est une base de données non relationnelle portable en python. Il stocke dicts python dans un fichier JSON local et les met à disposition pour les opérations de base de données similaires à MongoDB. Il a également une extension au port aux commandes de MongoDB, la différence étant qu'au lieu de travailler sur un autre serveur de système vous exploiterez sur un fichier JSON local.

Et contrairement à la réponse actuellement choisie, il est sous une licence open MIT permissive.

Liens:

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top