1. 程式人生 > >CentOS下ImportError: No module named '_sqlite3'之問題分析

CentOS下ImportError: No module named '_sqlite3'之問題分析

問題環境依賴

OS: CentOS 7.2 Python 3.5

問題提出

在執行一個Python程式之時,在呼叫sqlite之時,碰到如下的錯誤資訊:

Traceback (most recent call last):
File "decode_conv.py", line 6, in <module>
import sqlite3
File "/usr/local/lib/python3.5/sqlite3/__init__.py", line 23, in <module>
from sqlite3.dbapi2 import *
File "/usr/local/lib/python3.5/sqlite3/dbapi2.py", line 27, in <module>
from _sqlite3 import *
ImportError: No module named '_sqlite3'


從問題來分析, sqlite沒有安裝

問題分析

首先嚐試:

pip3 install sqlite
pip3 install sqlite3

輸出的結果資訊如下:

Collecting sqlite3
  Could not find a version that satisfies the requirement sqlite3 (from versions: )
No matching distribution found for sqlite3
You are using pip version 9.0.1, however version 9.0.2
is available. You should consider upgrading via the 'pip install --upgrade pip' command.

結果都沒有找到,看來這個不是通過pip來安裝的。
經過查詢,發現是通過yum來安裝的:

yum install sqlite-devel
然後提示安裝成功

之後需要將Python基於程式碼的安裝包重新編譯一下,並重新安裝之後,方可生效:

./configure –prefix=python-install-folder
make & make install
重新執行程式就會發現原有的錯誤資訊已經解決了。

總結

在Python中呼叫sqlite的驅動或者類庫不是通過pip來進行安裝的,需要yum來進行安裝器開發包,這個是需要注意的。