Ubuntu系统如何将默认Python3.8切换为Python3.7版本
- 运行环境:Ubuntu 系统
- 系统默认Python版本查询:
python3 --version
返回结果:
Python 3.8.10
- 初始安装Python3.7执行的命令:
sudo apt-get install python3.7
执行返回:
Reading package lists... Done Building dependency tree Reading state information... Done Note, selecting 'python3.7-2to3' for regex 'python3.7' Note, selecting 'libpython3.7-stdlib' for regex 'python3.7' 0 upgraded, 0 newly installed, 0 to remove and 105 not upgraded.
- 安装后无法调用Python3.7,尝试配置版本切换执行的命令:
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.7 1
报错信息:
update-alternatives: error: alternative path /usr/bin/python3.7 doesn't exist
- 待安装Python依赖清单:
tensorflow-gpu==1.15.0 scipy==1.7.3 pillow==9.1.0 gdown
- 核心诉求:获取正确的Python3.7安装、多版本切换方案,完成上述依赖安装。
Ubuntu默认软件源未提供Python3.7主程序包,之前执行安装命令时仅匹配到了名称包含python3.7的零散附属包,并未实际安装Python3.7主程序,因此/usr/bin/python3.7路径不存在,后续版本切换配置自然报错。
1. 补充软件源
先添加维护Python多版本的PPA源,获取Python3.7的完整安装包:
sudo apt update sudo apt install software-properties-common -y sudo add-apt-repository ppa:deadsnakes/ppa -y sudo apt update
2. 安装Python3.7及配套组件
执行命令安装主程序和开发、打包相关依赖,避免后续装第三方包报错:
sudo apt install python3.7 python3.7-distutils python3.7-dev -y
安装完成后执行ls /usr/bin/python3.7,如果返回对应路径说明主程序安装成功。
3. 配置多版本切换
注意:不要直接修改系统默认python3命令的软链接,Ubuntu大量内置工具依赖原Python3.8环境,改动易引发系统故障。仅对python命令做版本管理即可。
执行以下命令将两个Python版本加入alternatives管理列表:
# 加入系统默认Python3.8,优先级设为2(默认优先级更高) sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 2 # 加入新安装的Python3.7,优先级设为1 sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.7 1
需要切换版本时,直接执行:
sudo update-alternatives --config python
根据终端弹出的版本列表,输入目标版本对应的序号回车即可完成切换,切换后执行python --version可验证当前生效版本。
4. 安装目标依赖包
先为Python3.7单独安装pip工具:
curl -sS https://bootstrap.pypa.io/get-pip.py | sudo python3.7
安装依赖时,指定用Python3.7对应的pip执行安装,避免包装到其他Python版本的目录下:
python3.7 -m pip install tensorflow-gpu==1.15.0 scipy==1.7.3 pillow==9.1.0 gdown
补充:tensorflow-gpu==1.15.0对CUDA、cuDNN版本有固定要求,安装前需确认环境中CUDA、cuDNN版本和该版本tensorflow的要求匹配,否则GPU无法正常调用。
内容的提问来源于stack exchange,提问作者S.M_Emamian

