在Colab中升级SQLite
我一直在通过当地的Jupyter笔记本做一些数据分析,使用sqlite、 pandas 和Plot。我想在CoLab网站上移动那个笔记本,以允许其他人使用它,但它报告的是SQLite版本3.22,而不是3.30。
我正在使用一些仅在SQLite 3.28中提供的窗口函数,并且想要升级SQLite,我已经尝试过
!apt-get update
!apt-get upgrade sqlite3
但这告诉我我有最新版本的SQLite(即3.22)。有什么办法可以解决这个问题吗?
EDIT1:运行`!apt-cache policy sqlite3``,结果为:
sqlite3:
Installed: 3.22.0-1ubuntu0.2
Candidate: 3.22.0-1ubuntu0.2
Version table:
*** 3.22.0-1ubuntu0.2 500
500 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
500 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages
100 /var/lib/dpkg/status
3.22.0-1 500
500 http://archive.ubuntu.com/ubuntu bionic/main amd64 Packages
解决方案
这里介绍如何升级到最新版本
!curl https://www.sqlite.org/src/tarball/sqlite.tar.gz?r=release | tar xz
%cd sqlite/
!./configure
!make sqlite3.c
%cd /content
!npx degit coleifer/pysqlite3 -f
!cp sqlite/sqlite3.[ch] .
!python setup.py build_static build
!cp build/lib.linux-x86_64-3.7/pysqlite3/_sqlite3.cpython-37m-x86_64-linux-gnu.so
/usr/lib/python3.7/lib-dynload/
# then MENU: Runtime > Restart runtime ...
import sqlite3
sqlite3.sqlite_version # 3.36.0
以下是针对Python 3.7更新的example notebook
我的GDrive中速度更快的(预编译)版本。
!gdown --id 1BSHIKQ7rFw5BpTq5nw1UZfjPK_7Mpnbi
!mv _sqlite3.cpython-37m-x86_64-linux-gnu.so /usr/lib/python3.7/lib-dynload/
# MENU: Runtime > Restart runtime
import sqlite3
sqlite3.sqlite_version # '3.36.0'
相关文章