在Ubuntu上升級SQLite,並讓Python使用新版SQLite


(本文適用於Debian系的Linux,如Ubuntu、Raspbian等等。)

 

在Linux上,Python的sqlite3模塊使用系統自帶的SQLite引擎,然而系統自帶的SQLite可能版本太老了。

用sqlite3.sqlite_version看一下SQLite引擎的版本,查詢得知這個版本是2012年6月發布的:

要升級SQLite引擎到新版、並被Python使用,需要如下兩個步驟:

 

1、先下載、編譯、安裝SQLite引擎

到SQLite官網的下載頁面:https://www.sqlite.org/download.html  這里是最新的版本,我們就安裝它吧。

源碼有兩個文件,我們下第二個(sqlite-autoconf-3160200.tar.gz),因為這個有配置文件。復制其鏈接,然后在終端執行:

wget https://www.sqlite.org/2017/sqlite-autoconf-3160200.tar.gz
tar zxvf sqlite-autoconf-3160200.tar.gz
cd sqlite-autoconf-3160200

./configure
make
sudo make install

以默認方式安裝后,會把編譯好的二進制文件安裝到 /usr/local/lib, 把頭文件sqlite3.h sqlite3ext.h安裝到/usr/local/include。

用這兩條命令確認一下已成功安裝到這里:

ls -l /usr/local/lib/*sqlite*
ls -l /usr/local/include/*sqlite*

 

2、下載、編譯、安裝Python

請照此文的方法做: http://www.cnblogs.com/infopi/p/update_python_raspbian.html

唯一的區別是,在編譯時略有不同。假設我們安裝的是Python 3.5:

cd ./Python-3.5.3
./configure --prefix=/opt/python3.5
make
make
sudo make install

要改為:

cd ./Python-3.5.3
LD_RUN_PATH=/usr/local/lib ./configure LDFLAGS="-L/usr/local/lib" CPPFLAGS="-I/usr/local/include"  --prefix=/opt/python3.5
LD_RUN_PATH=/usr/local/lib make
make
sudo make install

藍字是相比上面多出來的東西,表示Python要到那兩個目錄里去找SQLite。

沒有藍字的話,編譯出來的Python仍將使用系統自帶的SQLite。


照此安裝后,已經可以使用最新版SQLite了,此版本是2017年1月發布的:

 

本文參考了Stackoverflow上tzot網友的方法,感謝~

萬一萬一,此文的方法不管用,可以嘗試:
sudo apt-get remove sqlite3 libsqlite3-dev,刪除系統自帶的SQLite,之后再試一下。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM