Ubuntu18.04升级Python3.8后报错ModuleNotFoundError: No module named ‘apt_pkg‘

Ubuntu18.04升级Python3.8后报错ModuleNotFoundError: No module named ‘apt_pkg‘

在将Ubuntu自带的Python升级为3.8之后,我发现在进行sudo apt update等操作时会报出ModuleNotFoundError: No module named ‘apt_pkg‘的错误。然后在网上试了很多方法,比如下面的方法:

cd /usr/lib/python3/dist-packages/
sudo cp apt_pkg.cpython-36m-x86_64-linux-gnu.so  apt_pkg.cpython-38m-x86_64-linux-gnu.so
sudo ln -s apt_pkg.cpython-38m-x86_64-linux-gnu.so apt_pkg.so

但是却发现并不凑效(鉴于我的情况较为特殊,所以还是建议你们先试试上面的方法,不行再用我的方法)。然后我查看了Python3.8的包路径,方法如下:
1.首先进入Python,在命令行中输入Python3(我的Python3默认指定为3.8)

python3

2.导入sys模块

import sys

3.获取路径

sys.path

结果如下:
在这里插入图片描述可以看到,我的Python3.8的包路径是’/usr/local/python3/lib/python3.8/site-packages’,而网上的方法是直接在‘/usr/lib/python3/dist-packages/’这个路径下添加apt_pkg.cpython-38m-x86_64-linux-gnu.so动态链接库,所以无法解决我的问题。

解决方法:
既然找到了问题所在,那么想要解决就好办了。
1.复制动态链接库到Python3.8的包路径下

cd /usr/lib/python3/dist-packages/
sudo cp apt_pkg.cpython-36m-x86_64-linux-gnu.so  /usr/local/python3/lib/python3.8/site-packages/apt_pkg.cpython-38m-x86_64-linux-gnu.so

2.建立软链接(注意,先进入到你的Python包路径下再建立软连接)

cd /usr/local/python3/lib/python3.8/site-packages
sudo ln -s apt_pkg.cpython-38m-x86_64-linux-gnu.so apt_pkg.so

最后成功update
在这里插入图片描述总结
要注意升级后Python的包的路径,由于升级后我的Python3.8的包路径改变,即使在”/usr/lib/python3/dist-packages/“路径下将“apt_pkg.cpython-36m-x86_64-linux-gnu.so”复制为“apt_pkg.cpython-38m-x86_64-linux-gnu.so”并建立软连接也无法访问到,所以需要将动态链接库复制到Python3.8的包路径下才能被访问。

猜你喜欢

转载自blog.csdn.net/qq_51182466/article/details/120378515