sqlite3 报错事件
在本地 Macos 环境运行正常,可是在服务端 centos 环境报错:“sqlite3.OperationalError: near "ON": syntax error”,最开始以为是数据问题。可是毫无进展,无奈之下看了看 print(sqlite3.sqlite_version),发现本地是 3.28,线上才 3.7.17,那就是说把 Python升级到 3.7.4 和本地一样总行了吧。
在 make altinstall 完成之后,发现 pip install 直接报错了:“pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.”,我去,openssl 也要升级,编译完成后,编译地址是 /usr/local/openssl,可以系统 openssl version 的版本还是旧的,只能把新的 openssl 软链过去。终算 pip 可用。
不料又有了新的错误:“ModuleNotFoundError: No module named '_sqlite3'”,Python 版本一致,可是 sqlite3 的版本,还是一样,看来只能升级 sqlite3。yum sqlite-devel 和 enable-loadable-sqlite-extensions 之后,发现并无卵用,看来只能从源码编译,configure && make install 之后,export LD_LIBRARY_PATH=/usr/local/lib 之后,print(sqlite3.sqlite_version) 总算能看到 3.31.1。
终于,sqlite3.OperationalError 不再复现,原本只想要个香蕉,可是找出一片森林,这是 Linux。习惯吧。