Linux下升级Python3.5到3.7.2提示无法定位软件包如何解决?
Python 3.5.3 升级到 3.7.2 无法定位安装包的解决方案
报错原因
该报错本质是两个问题:
- apt 源的 Python 包命名规则仅携带主版本号,不存在
python3.7.2这种带完整修订版本号的包名,正确的基础包名格式为python3.7 - 自带 Python 3.5.3 的 Linux 发行版(如 Ubuntu 16.04、Debian 9)官方默认源未收录 Python 3.7 版本的安装包,即使添加 universe 源也无法找到对应包
解决方法
方法一:第三方 PPA 源安装(仅适配 Debian/Ubuntu 系发行版)
# 安装源管理工具 sudo apt install software-properties-common # 添加 Python 专属第三方源 deadsnakes sudo add-apt-repository ppa:deadsnakes/ppa # 更新源缓存 sudo apt update # 安装 Python 3.7 sudo apt install python3.7
该方法安装的是 3.7 分支的最新稳定版,若必须精确使用 3.7.2 版本请使用第二种方法。
方法二:源码编译安装(全发行版通用,可精确匹配 3.7.2 版本)
# 安装编译所需依赖 sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget # 下载 Python 3.7.2 源码包 wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz # 解压源码包 tar -xzf Python-3.7.2.tgz # 进入源码目录 cd Python-3.7.2 # 配置编译参数,启用优化项 ./configure --enable-optimizations # 编译,可在 make 后加 -j{核心数} 加快编译速度,如4核设备使用 make -j4 make # 安装,使用 altinstall 避免覆盖系统默认 python3 命令,防止系统工具异常 sudo make altinstall # 验证安装结果 python3.7 -V
执行验证命令后输出 Python 3.7.2 即为安装成功。
注意事项
不要修改系统默认的 python3 软链接指向新安装的 Python 3.7,否则会导致依赖原有 Python 3.5 的系统工具运行出错。需要使用 Python 3.7 时直接通过 python3.7 命令调用即可,创建虚拟环境时也可指定该路径作为解释器。
内容的提问来源于stack exchange,提问作者fatima
相关产品推荐
相关产品推荐

