160 votes

Aucun module nommé _sqlite3

Je suis en train de lancer un Django app sur mon VPS exécution de Debian 5. Quand je lance une démo app, il revient avec cette erreur:

  File "/usr/local/lib/python2.5/site-packages/django/utils/importlib.py", line 35, in     import_module
    __import__(name)

  File "/usr/local/lib/python2.5/site-packages/django/db/backends/sqlite3/base.py", line 30, in <module>
    raise ImproperlyConfigured, "Error loading %s: %s" % (module, exc)

ImproperlyConfigured: Error loading either pysqlite2 or sqlite3 modules (tried in that     order): No module named _sqlite3

En regardant le Python installer, il donne le même message d'erreur:

Python 2.5.2 (r252:60911, May 12 2009, 07:46:31) 
[GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite3
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.5/sqlite3/__init__.py", line 24, in <module>
    from dbapi2 import *
  File "/usr/local/lib/python2.5/sqlite3/dbapi2.py", line 27, in <module>
    from _sqlite3 import *
ImportError: No module named _sqlite3
>>>

La lecture sur le web, j'apprends que Python 2.5 devrait venir avec tout le nécessaire SQLite wrappers inclus. Dois-je réinstaller Python, ou est-il un autre moyen d'obtenir ce module et de l'exécution?

171voto

jammyWolf Points 11

il semble que vous ayez perdu le fichier .so. J'ai configuré ce problème avec les étapes ci-dessous:

  1. installer sqlite-devel
  2. recompilez votre python avec: ./configure && make && make install

83voto

Emilien Points 1220

J'ai eu le même problème (construire python2.5 partir de la source sur Ubuntu Lucid), et import sqlite3 lancé cette même exception. J'ai installé libsqlite3-dev partir du gestionnaire de paquets, python2.5 recompilé, puis l'importation a fonctionné.

24voto

Joe Points 556

C'est ce que j'ai fait pour que ça fonctionne.

J'utilise pythonbrew (qui utilise pip) avec python 2.7.5 installé.

J'ai d'abord fait ce que Zubair (ci-dessus) a dit et j'ai exécuté cette commande:

 sudo apt-get install libsqlite3-dev
 

Puis j'ai lancé cette commande:

 pip install pysqlite
 

Cela a résolu le problème de la base de données et je l’ai confirmé lorsque j’ai exécuté:

 python manager.py syncdb
 

11voto

Glenn Maynard Points 24451

Mon _sqlite3.il est dans /usr/lib/python2.5/lib-dynload/_sqlite3.donc. À en juger par vos chemins d'accès, vous devriez avoir le fichier /usr/local/lib/python2.5/lib-dynload/_sqlite3.donc.

Essayez les solutions suivantes:

find /usr/local -name _sqlite3.so

Si le fichier n'est pas trouvé, quelque chose peut-être tort avec votre installation de Python. Si elle est, assurez-vous que le chemin d'accès il est installé à l'est dans le Python path. Dans le Python, shell,

import sys
print sys.path

Dans mon cas, /usr/lib/python2.5/lib-dynload est dans la liste, il est donc en mesure de trouver /usr/lib/python2.5/lib-dynload/_sqlite3.donc.

9voto

foomip Points 521

J'ai récemment essayé d'installer python 2.6.7 sur mon Ubuntu 11.04 bureau pour certains travaux de développement. Suis tombé sur des problèmes similaires à ce fil. Je mamaged à fixer par:

  1. Réglage de la setup.py le fichier de la bonne sqlite dev chemin. Le fragment de Code dans setup.py:

    def sqlite_incdir:
    sqlite_dirs_to_check = [
    os.path.join(sqlite_incdir, '..', 'lib64'),
    os.path.join(sqlite_incdir, '..', 'lib'),
    os.path.join(sqlite_incdir, '..', '..', 'lib64'),
    os.path.join(sqlite_incdir, '..', '..', 'lib'),
    '/usr/lib/x86_64-linux-gnu/'
    ]
    

    Avec le peu que j'ai ajouté en cours de '/usr/lib/x86_64-linux-gnu/'.

  2. Après l'exécution de make je n'ai pas tous les avertissements disant que le support de sqlite n'a pas été construit (c'est à dire, il construit correctement :P ), mais après l'exécution de l' make install, sqlite3 n'a toujours pas d'importer la même "ImportError: No module named _sqlite3" whe running "import sqlite3".

    Ainsi, la bibliothèque a été compilé, mais pas déplacés vers le bon chemin d'installation, j'ai donc copié l' .so le fichier (cp /usr/src/python/Python-2.6.7/build/lib.linux-x86_64-2.6/_sqlite3.so /usr/local/python-2.6.7/lib/python2.6/sqlite3/ - ce sont mes chemins de génération, vous aurez probablement besoin de les adapter à votre configuration).

Voila! SQLite3 en charge des travaux.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X