如何卸载通过make安装的Python 3.9.2并恢复系统默认配置,同时求特定Python版本的替代安装方法
如何卸载通过make安装的Python 3.9.2并恢复系统默认配置,同时求特定Python版本的替代安装方法
别慌,我来一步步帮你搞定这个问题!
一、卸载手动编译的Python 3.9.2并恢复系统默认配置
1. 优先尝试官方卸载方式
如果你还保留着当时编译Python 3.9.2的源码目录,直接进入那个目录执行:
sudo make uninstall
这是最干净的卸载方式,会自动移除编译安装的所有文件。
2. 找不到源码目录?手动清理文件
如果源码目录已经删掉了,就需要手动删除相关文件:
- 删除可执行文件:
sudo rm -f /usr/local/bin/python3.9 sudo rm -f /usr/local/bin/pip3.9 sudo rm -f /usr/local/bin/python3.9-config # 其他带3.9后缀的工具,比如pydoc3.9之类的,也可以一起删掉 - 删除库文件和头文件:
sudo rm -rf /usr/local/lib/python3.9 sudo rm -rf /usr/local/include/python3.9
3. 恢复系统默认的python3快捷方式
先确认系统原本默认的Python 3版本(比如Ubuntu常见的是3.8、3.10等),执行命令查看:
ls /usr/bin/python3*
假设系统默认版本是3.8,就重新创建软链接恢复默认:
sudo ln -sf /usr/bin/python3.8 /usr/bin/python3
同样,pip3的链接也可以用类似方法恢复:
sudo ln -sf /usr/bin/pip3.8 /usr/bin/pip3
最后验证一下:
python3 --version
显示系统原本的版本就说明恢复成功了。
二、安装特定Python版本的更优替代方法
方法一:用pyenv管理多版本(推荐)
pyenv是专门用来管理多个Python版本的工具,完全不会干扰系统默认的Python,非常适合开发场景。
- 先安装依赖包:
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \ libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \ xz-utils tk-dev libffi-dev liblzma-dev python-openssl git - 安装pyenv:
curl https://pyenv.run | bash - 配置环境变量(根据你的shell选择配置文件,比如bash是
~/.bashrc,zsh是~/.zshrc):
打开配置文件,添加以下内容:
然后生效配置:export PATH="$HOME/.pyenv/bin:$PATH" eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)"source ~/.bashrc # 或者source ~/.zshrc - 安装特定版本的Python:
pyenv install 3.9.2 - 使用这个版本:
- 设置全局默认:
pyenv global 3.9.2 - 只在当前目录使用:
pyenv local 3.9.2
验证:python --version会显示3.9.2,而且系统的python3还是原来的版本。
- 设置全局默认:
方法二:通过deadsnakes PPA安装
这个PPA提供了很多官方源没有的Python旧版本,安装简单,也不会覆盖系统默认:
- 添加PPA:
sudo add-apt-repository ppa:deadsnakes/ppa sudo apt update - 安装特定版本:
sudo apt install python3.9 python3.9-dev python3.9-pip - 使用时直接调用
python3.9,如果想设置优先级,可以用update-alternatives:
之后可以通过sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 1 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 2 # 系统默认版本设为更高优先级sudo update-alternatives --config python3切换版本。
备注:内容来源于stack exchange,提问作者chocojunkie




