IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Comment moderniser le sqlite3 du Python 2.6.5 ?


Sujet :

Python

  1. #1
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut Comment moderniser le sqlite3 du Python 2.6.5 ?
    Bonjour,

    Je souhaite rester sous Python 2.6.5 pour l'instant, à cause de certains modules dont j'ai besoin.

    Mais le sqlite3 livré avec Python 2.6.5 est à la version 3.5.9, alors que le dernier sqlite3 (http://www.sqlite.org/) est à la version 3.7.0.1: comment faire pour profiter de cette dernière?

    Sous Windows 7, j'ai essayé de remplacer simplement la dll (sqlite3.dll) par celle de la version 3.7.0.1, et ça a l'air de marcher sur un code d'essai!

    Mais c'est un peu rustique, et je ne connais pas toutes les adaptations de chaque version de sqlite3 à chaque version de Python.

    Quelqu'un a-t-il mieux à me proposer?

    Merci d'avance!

    Tyrtamos
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  2. #2
    Membre éprouvé
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Points : 1 066
    Points
    1 066
    Par défaut
    Normalement, changer la .dll ou le .so suffit, puisque tout le code de SQLite est contenu dedans.
    Toutefois, le binding Python pourrait ne pas correspondre totalement
    Gare aussi aux différences d'architectures (32/64bit)

    Le mieux à faire, c'est de recompiler Python avec la nouvelle version de SQLite.

  3. #3
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Merci de ta réponse, Antoine_935.

    Non, je n'envisage pas de recompiler Python.

    J'ai continué à regarder, et je constate que le test de pysqlite+sqlite3 intégré dans Python 2.6.5 (il est ici: C:\Python26\Lib\test\test_sqlite.py) passe sans problème avec la dll v3.7.0.1 de sqlite3: les 203 tests sont ok.

    De ce fait, je crois que je vais prendre le risque de laisser la dll v3.7.0.1.

    J'examine une autre solution: celle de passer à Python 2.7. J'ai fini par trouver tous les modules que je voulais en version 2.7 (y compris reportlab en version non officielle: http://www.lfd.uci.edu/~gohlke/pythonlibs/). Et comme la dll de sqlite3 passe alors en version 3.6.21, le "saut" entre cette version et la v3.7.0.1 est moins grand, donc moins risqué. Par ailleurs, le pysqlite (adaptation de sqlite3 à Python) passe de la version 2.4.1 à la dernière version 2.6.0.

    Je dirai ici si ça marche.

    Je laisse cette question ouverte pendant quelques jours au cas où quelqu'un aurait une meilleure idée...

    Tyrtamos
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  4. #4
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Bon, en l'absence d'une autre idée, je vais clore ce fil.

    La solution adoptée est celle-ci:

    1- je suis passé en Python 2.7, qui a les évolutions suivantes par rapport à la 2.6.5:
    => PySqlite est passé de la v2.4.1 à la v2.6.0 (la dernière)
    => Sqlite3 est passé de la v3.5.9 à la v3.6.21

    2- j'ai changé la dll C:\Python27\DLLs\sqlite3.dll par la dernière version 3.7.0.1 téléchargée sur le site de sqlite

    3- j'ai vérifié que le script de test C:\Python27\Lib\test\test_sqlite.py donne un résultat satisfaisant (ici, les 214 tests sont ok).

    A mon avis, tant que je resterai dans les v3.x de la dll, les modernisations devraient être possibles sans trop de risques.

    Je ne suis pas maniaque de ce genre de bidouillage, mais sqlite3 est un produit jeune en permanente évolution, et je tiens à avoir la dernière mouture.

    Tyrtamos
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment sont implémentées les listes Python ?
    Par rambc dans le forum Général Python
    Réponses: 8
    Dernier message: 15/12/2012, 14h17
  2. Comment echanger des Data entre Python et Javascript
    Par gilles06 dans le forum Général Python
    Réponses: 6
    Dernier message: 01/09/2012, 16h31
  3. Explication sur sqlite3 et python
    Par otobenzina dans le forum Réseau/Web
    Réponses: 3
    Dernier message: 28/07/2012, 01h00
  4. Comment acceder à mon routeur via python ?
    Par newsuser dans le forum Réseau/Web
    Réponses: 4
    Dernier message: 28/11/2011, 21h53
  5. [BOOST]Comment utiliser la lib boost.python
    Par Invité dans le forum Bibliothèques
    Réponses: 6
    Dernier message: 30/01/2006, 11h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo