10

I'm running Python 2.6 on Unix and when I run the interactive prompt (SQLite is supposed to be preinstalled) I get:

[root@idev htdocs]# python
Python 2.6 (r26:66714, Oct 23 2008, 16:25:34)
[GCC 3.2.2 20030222 (Red Hat Linux 3.2.2-5)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named sqlite
>>>

How do I resolve this?

Jakob Bowyer
34.8k8 gold badges80 silver badges93 bronze badges
asked Oct 24, 2008 at 12:33

8 Answers 8

14

The error:

ImportError: No module named _sqlite3

means that SQLite 3 does not find the associated shared library. On Mac OS X it's _sqlite3.so and it should be the same on other Unix systems.

To resolve the error you have to locate the _sqlite3.so library on your computer and then check your PYTHONPATH for this directory location.

To print the Python search path enter the following in the Python shell:

import sys
print sys.path

If the directory containing your library is missing you can try adding it interactively with

sys.path.append('/your/dir/here')

and try

import sqlite3

again. If this works you have to add this directory permanently to your PYTHONPATH environment variable.

PS: If the library is missing you should (re-)install the module.

Peter Mortensen
31.3k22 gold badges110 silver badges134 bronze badges
answered Oct 24, 2008 at 14:52
Sign up to request clarification or add additional context in comments.

Comments

10
import sqlite3

sqlite3 - DB-API 2.0 interface for SQLite databases.

You are missing the .so (shared object) - probably an installation step. In my Linux python installation, _sqlite3 is at:

${somewhere}/lib/python2.6/lib-dynload/_sqlite3.so
answered Oct 24, 2008 at 12:36

Comments

10

Python 2.6 detects where the sqlite3 development headers are installed, and will silently skip building _sqlite3 if it is not available. If you are building from source, install sqlite3 including development headers. In my case, sudo yum install sqlite-devel sorted this out on a CentOS 4.7. Then, rebuild Python from source code.

answered Jun 2, 2009 at 11:35

1 Comment

please clarify what 'rebuild Python from source code' means. thanks
1

Try this:

from pysqlite2 import dbapi2 as sqlite
answered Oct 24, 2008 at 14:55

Comments

1

On my system _sqlite3.so located at:

'/usr/lib/python2.6/lib-dynload/_sqlite3.so'

Check that the directory is in your sys.path:

>>> import sys; print(filter(lambda p: 'lib-dynload' in p, sys.path))
['/usr/lib/python2.6/lib-dynload']
answered Oct 24, 2008 at 15:12

Comments

0

Does that fix your problem?

Python 2.5.4 (r254:67916, May 31 2009, 16:56:01)
[GCC 4.3.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
ImportError: No module named sqlite
>>> import sqlite3
>>>
answered Jun 5, 2009 at 0:44

Comments

0

The 2.5.5. Mac port of Python 2.5 now has this hint:

"py25-sqlite3 @2.5.4 (python, databases)
 This is a stub. sqlite3 is now built with python25"

And so an upgrade of the python25 port to python25 @2.5.5_0 made the import work again. Since sqlite3 is among the dependencies of python25, it is built anew when upgrading python25. Thus,

$ sudo port upgrade python25

does the trick on Mac OS X, ports collection.

answered Apr 22, 2010 at 15:49

Comments

0

I face the same problem. Steps to solve.

  1. Download latest sqlite3 from sqlite website. sqlite-autoconf*
  2. Install that in 3 simple steps
    1. ./configure
    2. make
    3. make install
  3. Rebuild the python make make install
kleopatra
51.7k28 gold badges103 silver badges220 bronze badges
answered Mar 7, 2013 at 11:09

Comments

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.