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來進行安裝器開發包,這個是需要注意的。