python3下可能会遇到如下报错:
Traceback (most recent call last): File "1db_count_rows.py", line 4, in <module> import sqlite3 File "/usr/local/lib/python3.7/sqlite3/__init__.py", line 23, in <module> from sqlite3.dbapi2 import * File "/usr/local/lib/python3.7/sqlite3/dbapi2.py", line 27, in <module> from _sqlite3 import * ModuleNotFoundError: No module named '_sqlite3'
解决方案如下:
1、安装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、重新安装python
$ cd Python-3.6.0a1 $ LD_RUN_PATH=/usr/local/sqlite3/lib ./configure --prefix=/usr/local/python3 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 sudo make install
注意,这是重装,要确保prefix传递的路径和之前的一致,不然不会覆盖原来的python环境,还会报上面那个错。
以上两个步骤执行后,进入python环境,执行import sqlite3,不报错则成功!