执行代码报错:“sqlite:No module named _sqlite3”
- 执行环境说明
某台服务器上执行DrissionPage相关程序报错,本机没有问题。
- 解决说明
本机找到_sqlite3实际为python内建库,与math库在同一级,即为环境问题。重装python环境是不可选的,投机取巧一下。
尝试在一台服务器上找一下_sqlite的so文件,执行以下命令:
sudo find / -name _sqlite*.so # 大概会输出 /usr/lib64/python2.7/lib-dynload/_sqlite3.so /usr/lib64/python2.7/site-packages/_sqlitecache.so /usr/lib64/python3.6/lib-dynload/_sqlite3.cpython-36m-x86_64-linux-gnu.so /usr/local/python3/lib/python3.9/lib-dynload/_sqlite3.cpython-39-x86_64-linux-gnu.so
同理,在有问题服务器查询_sqlite的so文件,这里查到python2的so文件,不可直接复制这个文件!
先确认有问题那台服务器,python2版本_sqlite的so文件在什么路径,上对应python3该路径下看看确认要把so文件复制到这个路径下。
执行下面同步文件命令:
rsync -av -W --update --progress --partial /usr/local/python3/lib/python3.9/lib-dynload/_sqlite3.cpython-39-x86_64-linux-gnu.so your_username@your_host:/your_path
当然,如果没有权限直至同步到目标路径下,可先同步到home或者temp目录下,再mv过去。
实践出真知~
浙公网安备 33010602011771号