Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

python3.6 import sqlite3 error

I installed Python3.6 on ubuntu16.04 and installed sqlite3. When in python2, I can import sqlite successfully, but in python3 I got an import error. I tried many methods from Google, but it still doesn't work. I want to know how to solve it.

Python 3.6.0 (default, Mar 13 2017, 06:38:19) 
[GCC 5.4.0 20160609] on linux
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/python3.6/sqlite3/__init__.py", line 23, in <module>
    from sqlite3.dbapi2 import *
  File "/usr/local/lib/python3.6/sqlite3/dbapi2.py", line 27, in <module>
    from _sqlite3 import *

ModuleNotFoundError: No module named '_sqlite3'
like image 488
dragon Avatar asked Mar 13 '17 14:03

dragon


People also ask

What is the correct way to install sqlite3 in Python?

Step 1 − Go to SQLite download page, and download precompiled binaries from Windows section. Step 2 − Download sqlite-shell-win32-*. Step 3 − Create a folder C:\>sqlite and unzip above two zipped files in this folder, which will give you sqlite3.

Where is _sqlite3?

My _sqlite3.so is in /usr/lib/python2. 5/lib-dynload/_sqlite3. so. Judging from your paths, you should have the file /usr/local/lib/python2.


2 Answers

sqlite3 will comes with python itself. I also get the same problem i just uninstalled the python3.6 and installed again.

uninstall existing python:

sudo apt-get remove --purge python3.6

Install python3.6:

sudo apt install -y \
  build-essential \
  checkinstall

sudo apt install -y \
  libreadline-gplv2-dev \
  libncursesw5-dev \
  libssl-dev \
  libsqlite3-dev \
  tk-dev \
  libgdbm-dev \
  libc6-dev \
  libbz2-dev

PYTHON_VERSION=3.6.0

wget https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tar.xz
tar xvf Python-${PYTHON_VERSION}.tar.xz
cd Python-${PYTHON_VERSION}/
./configure
sudo make altinstall

It works!

like image 67
Mastan Basha Shaik Avatar answered Sep 19 '22 22:09

Mastan Basha Shaik


You can install python3 and sqlite by yourself. try this.

Or you can try it as follows,

1. install sqlite3
$ wget https://www.sqlite.org/2017/sqlite-autoconf-3170000.tar.gz --no-check-certificate
$ tar zxvf sqlite-autoconf-3170000.tar.gz
$ cd sqlite-autoconf-3170000
$ ./configure --prefix=/usr/local/sqlite3 --disable-static --enable-fts5 --enable-json1 CFLAGS="-g -O2 -DSQLITE_ENABLE_FTS3=1 -DSQLITE_ENABLE_FTS4=1 -DSQLITE_ENABLE_RTREE=1"

2. install python3.6
$ cd Python-3.6.0 
$ LD_RUN_PATH=/usr/local/sqlite3/lib ./configure --prefix=/usr/local/python3.6 LDFLAGS="-L/usr/local/sqlite3/lib" CPPFLAGS="-I /usr/local/sqlite3/include"
$ LD_RUN_PATH=/usr/local/sqlite3/lib make
$ LD_RUN_PATH=/usr/local/sqlite3/lib make install 

like image 23
ismtlee Avatar answered Sep 20 '22 22:09

ismtlee