Ubuntu 20.04安装Python2踩坑实录:从报错到解决的全过程

ubuntu:20.04 同时使用python2|3 ubuntu:20.04 同时使用python2|31.安装python22.检查Python已有版本3.设置替代版本4.选择方案切换版本5.pip2和pip3 设置6.python2安装pymysql7.虚拟环境使用python28.pycharm使用python2 1.安装python2 默认系统安装的python2 是2.7.18 apt update apt install python2 2.检查Python已有版本 ls /usr/bin/python* /usr/bin/python2 / 阅读详情

Ubuntu 20.04 安装 Python 2 的深度排雷指南:从“找不到包”到环境完美搭建

最近在为一个老旧的科学计算项目配置环境,项目依赖的某些核心库和脚本,固执地要求 Python 2 环境。当我信心满满地在全新的 Ubuntu 20.04 系统上敲下 sudo apt install python2 时,终端无情地抛出了那个经典的错误:E: Unable to locate package python2。这感觉就像在现代化的图书馆里寻找一本绝版古籍,明明知道它存在过,但标准书架就是没有它的位置。如果你也正为此困扰,尤其是那些需要维护遗留代码、运行特定科学计算软件(如 FSL、SPM)或处理特定工业控制脚本的开发者,那么这篇从实战踩坑中总结的指南,或许能帮你绕过我走过的弯路,直抵问题核心。

问题的根源,远不止“换个软件源”那么简单。它涉及到 Ubuntu 发行版的软件仓库策略演变、历史软件包的维护状态,以及我们如何在一个以 Python 3 为主流的系统中,安全、稳定地“复活”一个旧版本的解释器。本文将不仅解决 Unable to locate package 这个具体错误,更会深入探讨后续可能遇到的依赖、路径冲突及虚拟环境管理问题,为你构建一个可用的 Python 2 工作空间。

1. 理解“找不到包”背后的仓库逻辑

在 Ubuntu 20.04 及之后的版本中,默认的软件源配置已经发生了显著变化。Python 2.7 的生命周期已于 2020 年 1 月 1 日正式结束,这意味着官方不再为其提供任何安全更新或维护。因此,Canonical(Ubuntu 的母公司)决定,从 Ubuntu 20.04 LTS 开始,Python 2 不再包含在主要的 main 软件仓库中。

Ubuntu 的软件仓库分为几个部分:

  • Main: 由 Canonical 官方支持的自由开源软件。
  • Universe: 由社区维护的自由开源软件。
  • Restricted: 设备的专有驱动程序。
  • Multiverse: 受版权或法律限制的软件。

Python 2 被移到了 Universe 仓库。但新安装的 Ubuntu 20.04 系统,默认可能并未启用所有仓库。你可以通过以下命令检查当前系统启用了哪些组件:

sudo apt-cache policy | grep -A5 -B5 "archive.ubuntu.com"

或者更直接地查看 /etc/apt/sources.list 文件及其 *.list 文件:

grep -r "^deb " /etc/apt/sources.list /etc/apt/sources.list.d/

你会发现,很多源地址的行末尾可能只标注了 main,缺少 universe。这就是问题的症结所在:系统知道软件源服务器的地址,但只被允许从 main 区域查找和下载软件包,而 python2 这个包恰好不在那里。

注意:直接修改 /etc/apt/sources.list 文件是有效的,但更推荐使用 add-apt-repository 命令或图形化工具来管理仓库,这能减少手动编辑可能带来的语法错误。

2. 核心解决步骤:启用仓库与安装

解决 Una

Ubuntu20.04安装LabelImg工具--亲测有效 Ubuntu20.04安装LabelImg工具–亲测有效 此方法只使用Linux 在官网下载之后解压到你电脑任意位置(只要解压完你自己能找到即可) 下载链接:下载链接 你可以按照作者github的流程来选择使用什么命令安装,这里我根据自己的经历再说的详细以下,请务必按着下面的顺序一步一步来安装: one:从你解压后的那个文件夹进入终端 sudo apt-get install pyqt5-dev-tools two:同上 make qt5py3 three:找到requirements文件夹,从这 阅读详情

相关推荐

ubuntu20.04中python3.6安装

1.添加源 更新源: apt update apt upgrade 先安装vim: apt install vim vim /etc/apt/sources.list 添加清华大学的ubuntu软件源: # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释 deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse # deb-src https://m

weixin_45385568的博客 6438

在ubuntu18.04下安装ros,以及一些踩坑总结

目录ros是什么前期准备开始安装验证ros已经安装成功一点感想(与本文无关) ros是什么 ros全称是Robot Operating System(机器人操作系统),具体介绍可以打开百度百科 传送 前期准备 尽可能在ubuntu下安装,由于大家主要用的是windows系统,所以可以选择虚拟机或者装双系统。这是一个取舍问题,虚拟机的话安装方便,但性能会比较差。双系统的话安装麻烦一点,但体验会比较...

MrVco的博客 5587

ubuntu20下Cuckoo SandBox安装教程--大踩坑版(一)

ubuntu20下Cuckoo SandBox安装说明天坑1: 系统架构天坑2: python2.7python2.7安装pip2.7安装天坑3: Cuckoo依赖安装 说明 本文主要参考:Ubuntu20.04系统Cuckoo sandbox所需环境搭建及安装(超详细图文) Cuckoo SandBox官网:Cuckoo link 在做网络安全的小伙伴们安装Cuckoo SandBox的时候肯定发现了,大部分的文章都基于ubuntu14,然而到现在ubuntu已经更新到ubuntu20,很多基于ubunt

Jianxin_YU的博客 1万+

Ubuntu20.04编译安装qemu

Ubuntu20.04编译安装qemu 事先提醒,要弄清自己学的是哪个架构,早期的mit操作系统课(MIT6.828)教的是x86版,现在的课(MIT6.S081)教的是riscv-64,本文装的也是riscv-64 1.下载安装包 两个官方的搭建说明(或者直接看我下面的说明) https://wiki.qemu.org/Hosts/Linux https://en.wikibooks.org/wiki/QEMU/Linux 必装的安装包 sudo apt-get install git libglib

weixin_45709295的博客 4924

Ubuntu 22.04完整安装Xinference及解决依赖报错

注:文中使用的环境为Ubuntu 22.04 LTS + CUDA 12.4.1。

flymyd的博客 2910

【环境】ubuntu20.04 配置 aloam 环境,编译过程报错及成功解决方法

【代码】【aloam】ubuntu20.04 配置 aloam 环境,编译过程报错及成功解决方法。

weixin_42306148的博客 1816

从光斑图到锤形优化:一次搞定Zemax双胶合透镜的像散与场曲问题

本文详细解析了Zemax双胶合透镜设计中像散与场曲问题的诊断与优化方法。从光斑图分析到锤形优化技巧,提供了完整的光学设计实战指南,帮助设计师快速定位问题并有效改善系统性能,特别适合光学设计工程师和Zemax使用者参考。

weixin_27134495的博客 228

Python处理高光谱数据#3 降维

基于Python的高光谱降维操作 高光谱数据:点击此处可下载 用到的库:matplotlib、scipy、spectral 主要内容:主成分分析(PCA)与线性判别(LDA) 欢迎有兴趣的朋友交流指点。最后,废话不多说直接上代码???? import matplotlib.pyplot as plt from scipy.io import loadmat import spectral as spy

qq_273058791的博客 6934

SAP FICO 银企直联实战:从配置到异常处理的全流程解析

本文详细解析了SAP FICO银企直联的实战配置与异常处理全流程,涵盖银行主数据搭建、支付类配置、银行接口适配等关键步骤。通过实际案例分享,帮助用户掌握实时付款、余额监控和自动对账等核心功能,提升企业财务效率与安全性。特别针对常见问题如凭证重复付款、前置机UUID冲突等提供了实用解决方案。

weixin_29215815的博客 658

Zynq7000双核裸机开发实战:如何安全实现共享内存与乒乓RAM设计

本文深入探讨了Zynq7000双核裸机开发中的共享内存与乒乓RAM设计,重点解析了核间通信的Cache一致性处理机制和硬件级实现方案。通过实战代码示例和性能优化技巧,帮助开发者解决双核运行中的访问冲突问题,提升嵌入式系统开发效率。

weixin_29191669的博客 369

从 Material Requirements Planning 看 SAP 物料计划的底层控制逻辑

文章摘要:SAP中的MRP(物料需求计划)不仅仅是运行一个程序(如MD01N),其关键在于主数据和组织层级的正确配置。MRP的核心是解决"何时需要多少物料"的问题,涉及采购、生产、库存等多种供应来源。物料主数据的MRP视图必须在组织层级(如工厂、存储位置)下维护,不同层级的计划逻辑可能完全不同。S/4HANA更强调MRP Area作为细分计划单位,取代传统存储位置MRP。实施时需注意MRP Profile的合理使用,避免批量错误,并特别关注物料生命周期管理(如停用物料和替代件),这些因素共同决定了MRP能否

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1398

使用强化学习快速让AI学会玩贪食蛇游戏(轻量级二十分钟训练+代码)

如何让AI玩会贪食蛇,甚至比你厉害概述构建问题(强化学习求解的一般步骤)环境动作定义状态定义奖励设计训练奖励值收敛图效果代码 概述 所用技术:强化学习(Deep Reinforcement Learning),属于一种无监督学习,利用奖励rewardrewardreward教会智能体AgentAgentAgent在合适的场景做合适的决策。 采用算法:试过两种算法D3QN和离散版本的PPO算法,最终采用离散版本PPO算法+GAE(PPO是我用过的性能最好的算法之一) 编程语言与深度学习框架:Python3.

ZYunfei的博客 2万+

风险登记册vs问题日志:项目经理必须掌握的区别与应用

在项目管理的世界里,风险登记册和问题日志就像是项目经理的两个得力助手。我们的目的就是要搞清楚这两个助手各自的特点、区别以及如何在项目中好好使用它们。范围涵盖了项目从启动到结束的整个过程,无论是小项目还是大项目,都能从对这两个工具的正确使用中受益。我们先会用有趣的故事引出风险登记册和问题日志的概念,然后像给小学生讲故事一样解释它们是什么。接着分析它们之间的关系和区别,再用代码示例模拟它们在项目中的应用,之后介绍实际的应用场景、推荐相关工具和资源,探讨未来的发展趋势和挑战。

项目管理的博客 866

高通平台N4单路输入的720P相机预览

N4的一路720P Camera作为MIPI摄像头使用

llw21680的专栏 156

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

上一篇: 高效PCB设计:利用AutoCAD和PADS实现2D图纸到板框的无缝转换
下一篇: NCBI Datasets隐藏技巧:用dataformat工具把JSON元数据变成Excel表格
浮生若梦622
博客等级 码龄4年 42粉丝 1553原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值