ModuleNotFoundError: No module named 'sqlite'

Federico發表於2017-09-20

解決 ModuleNotFoundError: No module named 'sqlite'。問題

今天在將Python2.7升級至Python3.6後匯入sqlite模組時出現了一下報錯,到網上查詢了各種文件,介紹了各種方法都不能解決,最後才發現是因為庫檔案的問題,特此記錄,以免再犯。

方法一、

首先如果你的環境不是多個版本的Python環境,使用此方法可能能夠解決你所遇到的問題,解決方法如下:

yum -y install sqlite sqlite-devel

方法二、

如果你的系統上安裝了多個版本的Python,那麼很可能出現這個問題的原因就是virtualenv使用的那一套python中沒有_sqlite3.so這個檔案,解決方法如下:

首先檢視庫檔案的位置

find / -name _sqlite3.so
/usr/lib64/python2.7/lib-dynload/_sqlite3.so

然後檢視下系統中所有Python的當前路徑

whereis python
python: /usr/bin/python.bak /usr/bin/python2.7-config /usr/bin/python2.7 /usr/bin/python /usr/lib/python2.7 /usr/lib64/python2.7 /etc/python /usr/local/bin/python3.6m /usr/local/bin/python3.6m-config /usr/local/bin/python3.6-config /usr/local/bin/python3.6 /usr/local/lib/python2.7 /usr/local/lib/python3.6 /usr/include/python2.7 /usr/share/man/man1/python.1.gz

直接將_sqlite3.so庫檔案拷貝至當前所用Python路徑

cp /usr/lib64/python2.7/lib-dynload/_sqlite3.so /usr/local/lib/python3.6/lib-dynload/

進入Python,import模組名檢視是否成功。

[root@bj ~]# python
Python 3.6.0 (default, Sep 20 2017, 15:50:27)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux
Type "help", "copyright", "credits" or "license" for more information.
import sqlite3

相關文章