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 :

impossible d'importer le module sqlite3 python3


Sujet :

Python

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur en Python3 et administrateur réseau
    Inscrit en
    Septembre 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur en Python3 et administrateur réseau
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2013
    Messages : 19
    Points : 27
    Points
    27
    Par défaut impossible d'importer le module sqlite3 python3
    Bonjour,

    Quand j'essaie d'importer le module sqlite3 :
    J'ai cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Traceback (most recent call last):
      File "BaseDeDonnees.py", line 4, in <module>
        import sqlite3
      File "/usr/local/lib/python3.3/sqlite3/__init__.py", line 23, in <module>
        from sqlite3.dbapi2 import *
      File "/usr/local/lib/python3.3/sqlite3/dbapi2.py", line 26, in <module>
        from _sqlite3 import *
    ImportError: No module named '_sqlite3'
    J'utilise python3.3 et je suis sous linux mint 14.
    libsqlite3-dev et sqlite3 sont bien installés.

    Merci d'avance pour toutes aides !

  2. #2
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 484
    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 484
    Points : 9 286
    Points
    9 286
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Comme j'ai aussi un mint14, j'ai regardé: L'importation de sqlite3 de Python 3 se fait sans problème, mais j'ai le Python 3.2 qui est dans les paquets disponibles dans les dépots standards. Et le sqlite3 est fourni avec le paquet python3.2. A noter que je n'ai pas eu besoin du paquet sqlite3 séparé: Python utilise le sien. J'ai vu aussi que le dbapi2.py importe _sqlite3, ce qui correspond en général à l'appel de la bibliothèque sqlite3: il est possible qu'elle se trouve dans le répertoire lib-dynload: regarde si tu as quelque chose qui porte le nom sqlite3 et qui se termine par "so".

    Si tu as Python 3.3, il a été installé par un autre moyen que par les paquets fournis. Et manifestement, il y a un problème d'installation, mais je ne sais pas ce qui manque. il y a donc 2 solutions:
    - revenir au Python 3.2 fourni dans les dépots standards
    - creuser l'installation Python 3.3 pour trouver ce qui manque.

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 442
    Points : 37 034
    Points
    37 034
    Par défaut
    Salut,
    Comme mint 14 est une variante Debian, _sqlite devrait être dans le package libpython3.3-stdlib (en test chez debian mais dans les distro standards cote Ubuntu et autres.).
    -W

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Développeur en Python3 et administrateur réseau
    Inscrit en
    Septembre 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur en Python3 et administrateur réseau
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2013
    Messages : 19
    Points : 27
    Points
    27
    Par défaut
    Merci pour vos réponses !

    tyrtamos : Entre
    - revenir au Python 3.2 fourni dans les dépots standards
    - creuser l'installation Python 3.3 pour trouver ce qui manque
    J'opterais pour la seconde possibilité, peut-être que la dernière version de python peut pallier ce problème, comment pourrais-je mettre à jour python ?

    wiztricks : libpython3.3-stdlib est bien installé.

  5. #5
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 484
    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 484
    Points : 9 286
    Points
    9 286
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Précise (avec détails) comment tu as installé le Python 3.3 actuel.

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Développeur en Python3 et administrateur réseau
    Inscrit en
    Septembre 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur en Python3 et administrateur réseau
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2013
    Messages : 19
    Points : 27
    Points
    27
    Par défaut
    J'ai installé python3.3 comme cela :

    Python est pré-installé sur la plupart des distributions Linux. Cependant, il est possible que vous n'ayez pas la dernière version en date. Pour le vérifier, tapez dans un terminal la commande python -V. Cette commande vous renvoie la version de Python actuellement installée sur votre système. Il est très probable que ce soit une version 2.x, comme 2.6 ou 2.7, pour des raisons de compatibilité. Dans tous les cas, je vous conseille d'installer Python 3.x, la syntaxe est très proche de Python 2.x mais diffère quand même…

    Cliquez sur download et téléchargez la dernière version de Python (actuellement « Python 3.2 compressed source tarball (for Linux, Unix or OS X) »). Ouvrez un terminal, puis rendez-vous dans le dossier où se trouve l'archive :

    Décompressez l'archive en tapant : tar -jxvf Python-3.2.tar.bz2 (cette commande est bien entendu à adapter suivant la version et le type de compression).

    Attendez quelques instants que la décompression se termine, puis rendez-vous dans le dossier qui vient d'être créé dans le répertoire courant (Python-3.2 dans mon cas).

    Exécutez le script configure en tapant ./configure dans la console.

    Une fois que la configuration s'est déroulée, il n'y a plus qu'à compiler en tapant make puis make altinstall. Ces commandes ont pour but de compiler Python. La commande make altinstall, en particulier, crée automatiquement les liens vers la version installée. Grâce à altinstall, vous pouvez être sûrs que la version que vous installez n'entrera pas en conflit avec une autre déjà présente sur votre système.

  7. #7
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 484
    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 484
    Points : 9 286
    Points
    9 286
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Poussé par une irrépressible curiosité, j'ai essayé.

    J'ai installé un linux mint 14 tout neuf (en virtuel), fait les mises à jour (env. 400 quand même...), et fait comme dit dans l'article.

    Tout se passe bien, mais pendant le "make" s'affiche le message suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Python build finished, but the necessary bits to build these modules were not found:
    _bz2               _curses            _curses_panel   
    _dbm               _gdbm              _lzma           
    _sqlite3           _ssl               _tkinter        
    readline           zlib                               
    To find the necessary bits, look in setup.py in detect_modules() for the module's name.
    Et, effectivement, après le "make altinstall", python3.3 démarre bien dans la console, et le "import sqlite3" provoque bien la même erreur que toi.

    Voilà comment on peut ajouter sqlite3:

    - télécharger directement sur le site de sqlite le source: http://www.sqlite.org/2013/sqlite-au...3080200.tar.gz

    - le décompresser, se placer dans son répertoire en console, et faire à la suite:
    ./configure
    make
    sudo make install

    - se remettre dans le répertoire de Python 3.3, et refaire:

    make
    sudo make altinstall

    Et cette fois, le "import sqlite3" se fait sans broncher. Si j'interroge la version ("print(sqlite3.sqlite_version)), j'obtiens 3.8.2, ce qui est bien la version téléchargée. Je n'ai pas testé plus: confirme que ça fonctionne!

    Tout de même, nous avons installé le Python 3.3 officiel avec la méthode officielle, et il y a plein de modules qui manquent, et aucune info pour dire comment on complète. Ce n'est pas très sérieux tout ça.

    Bref, il ne reste plus qu'à installer tout le reste (tkinter, etc...)! J'espère que tu as une bonne raison de vouloir absolument utiliser Python 3.3 au lieu de la version 3.2 préinstallée,..

    Bon courage!

    [Edit] Ce qu'on a ainsi installé se trouve dans /usr/local. A noter qu'il serait presque plus simple de passer à Linux Mint 15 qui a un Python 3.3.1 avec un sqlite3 v3.7.15.2.

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 442
    Points : 37 034
    Points
    37 034
    Par défaut
    Citation Envoyé par tyrtamos Voir le message
    Tout de même, nous avons installé le Python 3.3 officiel avec la méthode officielle, et il y a plein de modules qui manquent, et aucune info pour dire comment on complète.
    Ce n'est pas très sérieux tout ça.
    Entre le tarball Python crée par les développeurs du langage et son utilisation dans un OS, il y a tout le boulot de "packaging" qui doit résoudre ces questions de dépendances.
    Il faut éviter d'installer ce Python la dans les répertoires systèmes.
    Ça va péter un truc et comme vous ne le constaterez pas immédiatement, la relation de cause a effet sera "compliquée" a trouver.

    Vous pouvez l'utiliser dans vos répertoires prives (debug de Python) ou le livrer avec des applications construites avec cx_freeze.

    - W

  9. #9
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 484
    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 484
    Points : 9 286
    Points
    9 286
    Billets dans le blog
    6
    Par défaut
    Bonjour wiztricks,

    Citation Envoyé par wiztricks Voir le message
    Il faut éviter d'installer ce Python la dans les répertoires systèmes.
    C'est bien l'avantage du paramètre "altinstall" de make de ne pas mélanger ce Python 3.3 avec ceux déjà installés par défaut sur l'OS (2.7 et 3.2).

    Python 3.3 est installé dans /usr/local ainsi que le sqlite3. On a donc séparémment:
    - en tapant dans la console "python" on a Python 2.7
    - en tapant dans la console "python3.2" on a Python 3.2
    - en tapant dans la console "python3.3" on a Python 3.3

    Pour le reste, je suis entièrement d'accord: c'est casse-gu....

    Et comme je l'ai dit, si on a une bonne raison d'utiliser la version 3.3, il vaut mieux passer à Linux Mint 15 qui a Python 3.3 en paquet.

  10. #10
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 442
    Points : 37 034
    Points
    37 034
    Par défaut
    Citation Envoyé par tyrtamos Voir le message
    C'est bien l'avantage du paramètre "altinstall" de make de ne pas mélanger ce Python 3.3 avec ceux déjà installés par défaut sur l'OS (2.7 et 3.2).
    Si cela était aussi simple la communauté Debian ne se serait pas résolue a créer un meta-package (python3-defaultsX.Y), une policy,...

    Comme il est inutile de pousser un Python custom dans les répertoires gérés par la distro. pour l'utiliser avec vos applications: pourquoi essayer?

    si on a une bonne raison d'utiliser la version 3.3, il vaut mieux passer à Linux Mint 15 qui a Python 3.3 en paquet.
    Il serait plus simple de mettre a jour le "paquet" Python 3.3 i.e. de trouver le depot Mint qui va bien.

    - W

  11. #11
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 484
    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 484
    Points : 9 286
    Points
    9 286
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Comme il est inutile de pousser un Python custom dans les répertoires gérés par la distro. pour l'utiliser avec vos applications: pourquoi essayer?
    Pour répondre au PO!

    Citation Envoyé par wiztricks Voir le message
    Il serait plus simple de mettre a jour le "paquet" Python 3.3 i.e. de trouver le depot Mint qui va bien.
    Bien vu! Python 3.3 existe effectivement en paquet disponible sur Mint 14. Je ne l'avais pas cherché puisque ça ne correspondait pas à ce que le PO avait fait. En l'installant (on peut ajouter son idle), il se place dans /usr/lib (et non /usr/local/lib). Et on peut appeler séparément, comme dit précédemment: python, python3.2 et python3.3.

    Et avec ce python3.3: sqlite3 s'importe sans problème!

    Avant d'installer ce paquet, je me suis contenté de restaurer une sauvegarde antérieure de l'OS pour faire disparaître les Python 3.3 et sqlite3 installés précédemment par compilation. Pour le PO, je ne sais pas comment il va les désinstaller ou les "neutraliser": peut-être en renommant simplement son exécutable "python3.3" placé dans /usr/local/bin ?

    Merci!

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    Développeur en Python3 et administrateur réseau
    Inscrit en
    Septembre 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur en Python3 et administrateur réseau
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2013
    Messages : 19
    Points : 27
    Points
    27
    Par défaut
    tyrtamos : J'ai testé c'est bon c'est ok, juste que j'ai la version 3.7.15.2, mais là au moins je crois savoir d’où viens le problème. Un énorme merci tyrtamos ! Ton aide m'est très cher !

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

Discussions similaires

  1. Impossible d'importer un nouveau module
    Par jmbinformatique dans le forum Odoo (ex-OpenERP)
    Réponses: 7
    Dernier message: 25/11/2013, 16h24
  2. Réponses: 0
    Dernier message: 21/01/2011, 12h16
  3. Impossible d'importer un fichier excel
    Par _developpeur_ dans le forum Access
    Réponses: 2
    Dernier message: 24/01/2006, 13h21
  4. [Info]Impossible d'importer
    Par arsenik7 dans le forum Eclipse Java
    Réponses: 7
    Dernier message: 20/12/2005, 12h39
  5. [py2exe] Impossible de charger un module...
    Par Mr Hyde dans le forum Py2exe
    Réponses: 3
    Dernier message: 28/09/2005, 18h17

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