腾讯云服务器ubuntu20,已有Python3.8,从华为云下载安装包,安装了Python3.9之后,报错如题
解决:
从已有的3.8里拷贝依赖文件到3.9里,然后重命名,命令如下
ubuntu@esoaru-net ~/github/aiopathlib
☺ python3.8 -c 'import _sqlite3;print(_sqlite3.__file__)' master ✗
/usr/lib/python3.8/lib-dynload/_sqlite3.cpython-38-x86_64-linux-gnu.so
ubuntu@esoaru-net ~/github/aiopathlib
☺ which python3.9 master ✗
/usr/local/bin/python3.9
ubuntu@esoaru-net ~/github/aiopathlib
☺ cp /usr/lib/python3.8/lib-dynload/_sqlite3.cpython-38-x86_64-linux-gnu.so /usr/lib/python3.9/lib-dynload/ master ✗
cp: cannot create regular file '/usr/lib/python3.9/lib-dynload/_sqlite3.cpython-38-x86_64-linux-gnu.so': Permission denied
ubuntu@esoaru-net ~/github/aiopathlib
☹ sudo cp /usr/lib/python3.8/lib-dynload/_sqlite3.cpython-38-x86_64-linux-gnu.so /usr/lib/python3.9/lib-dynload/ master ✗
ubuntu@esoaru-net ~/github/aiopathlib
☺ python3.9 -c 'import _sqlite3;print(_sqlite3.__file__)' master ✗
Traceback (most recent call last):
File "<string>", line 1, in <module>
ModuleNotFoundError: No module named '_sqlite3'
ubuntu@esoaru-net ~/github/aiopathlib
☹ cd /usr/lib/python3.9/lib-dynload master ✗
ubuntu@esoaru-net /usr/lib/python3.9/lib-dynload
☺ sudo mv _sqlite3.cpython-38-x86_64-linux-gnu.so _sqlite3.cpython-39-x86_64-linux-gnu.so
ubuntu@esoaru-net /usr/lib/python3.9/lib-dynload
☺ python3.9 -c 'import _sqlite3;print(_sqlite3.__file__)'
/usr/lib/python3.9/lib-dynload/_sqlite3.cpython-39-x86_64-linux-gnu.so
☹ sudo cp /usr/lib/python3.9/lib-dynload/* /usr/local/lib/python3.9/lib-dynload/
总结:
其实就是一行命令
sudo cp /usr/lib/python3.8/lib-dynload/_sqlite3.cpython-38-x86_64-linux-gnu.so /usr/lib/python3.9/lib-dynload/_sqlite3.cpython-39-x86_64-linux-gnu.so