Python 2 即将退休,Fedora 怎么办?

随着Python 2的正式退休,Fedora社区正讨论统一弃用流程,旨在解决遗留软件包维护难题。提案涵盖子包、模块及环境依赖处理,力求降低Python 2退休影响。

640?wx_fmt=gif

640?wx_fmt=jpeg

作者 | h4cd

本文经授权转载自开源中国(ID:oschina2013)

Fedora 社区正在讨论弃用 Python 2 软件包的统一流程。

640?wx_fmt=png

https://pythonclock.org

 

Python 2 将于 2020 年 1 月 1 日正式退休,官方不再提供维护,当前倒计时不断缩短,但 Fedora 中还有一千多个软件包依赖于 Python 2,一旦失去 Python 2 上游支持,那么系统中的这些遗留软件包的维护问题将变得很严峻,甚至根本无从下手。 

 

为了解决这个问题,尽早去掉对 Python 2 的依赖,把基于 Python 2 的软件包都移除是最佳选择。但是实际操作起来会比较麻烦,并且可能对系统造成破坏性变更,于是 Fedora 的几位开发者提交了一项弃用 Python 2 软件包的统一流程提案,希望移除 Python 2 软件包更具可控性,让 Python 2 退休的影响降低。

 

该提案具体分情况描述了几个流程,主要涉及到针对 Python 2 subpackage(子包)、module(模块) 与 requirement(运行环境依赖)等几个方面的处理:

 

  • 通过类似于孤立的过程,Python 2 子包可以很容易弃用。

  • 没有其它功能的 Python 2 模块将被删除。

  • 非必要的环境依赖将被删除。

  • Fedora 社区将收集信息以帮助“项目管理”。

  • 将从系统中删除不可安装的 Python 2 包。

 

具体来看:

 

 

640?wx_fmt=png

弃用 Python 2 子包

 

 

如果维护者不再希望维护项目的 Python 2 部分(例如 python2- * 子包),那么对整个包进行孤立/退役会很容易,而如果不是整体打包弃用,想采用以下两种方式,那么很麻烦:

 

  • 只删除 Python 2 部分,这可能会破坏依赖包。

  • 将 Python 2 部分拆分为一个单独的组件,这需要通过正式审核。

 

此提案引入以下正式流程,将会更加容易弃用 Python 2 部分:

 

  • 维护者不打包 Python 2 部分,但必须为其他人提供选择。

  • 在拆分之前,必须对 Python 2 部分进行条件化(主要是为了帮助其他人找到它们)。

  • 一些具有拆分出的 Python 2 部分的包不进行审核。

 

  • 如果有任何东西取决于 Python 2 部分,那么在它们被删除之前进行相关声明。

  • 有 3 周时间等待回复电子邮件。(孤立和退休一个包之间的正常时间是 6 周。)

 

 

640?wx_fmt=png

移除模块

 

 

只提供 Python 2 可导入模块的包/子包将被删除,除非有其它包依赖于它们。

 

 

640?wx_fmt=png

移除环境依赖

 

 

如果一个环境依赖(包括 Requires 和 BuildRequires)是仅支持 Python 2 的,并且对软件包的功能和质量几乎没有影响,那么它将被删除。比如:

 

  • 很少使用的功能的测试,比如一个 BuildRequire 一个框架但只是测试与该框架的集成。

  • 非必要的只用于测试的功能,比如用于分布式多进程测试的测试 runner 插件。

  • 性能增强。

  • Linter 和代码样式检查器。

  • 代码和内容生成器。

 

在可能的情况下将尝试切换到这些依赖项的 Python 3 版本,而不是直接将其删除。

 

此提案如果获得批准,那么将对 Fedora 31 生效,作者指出,此提案只是更加可控版本的对 Python 2 包进行孤立,对此提案中的流程有不同看法的开发者,可以有以下几种选择:

 

 

完整提案:

https://fedoraproject.org/wiki/Changes/F31_Mass_Python_2_Package_Removal

640?wx_fmt=jpeg

 热 文 推 荐 

刘强东割袍弃兄弟,马爸爸醉心 996

马云:“996 是一种巨大的福气”

@程序员,入行物联网的避坑指南!| 技术头条

程序员 996 再上热搜,黑名单增至 84 家!

与云原生及开源大神们的第二次亲密接触 | 全议程重磅发布

V神玩起freestyle! 5位以太坊核心大咖在悉尼的演讲精华全在这了!| 直击EDCON

“重构”黑洞:26岁MIT研究生的新算法 | 人物志

程序员为什么都爱穿冲锋衣?(最全总结)

 

 

System.out.println("点个在看吧!");
console.log("点个在看吧!");
print("点个在看吧!");
printf("点个在看吧!\n");
cout << "点个在看吧!" << endl;
Console.WriteLine("点个在看吧!");
Response.Write("点个在看吧!");
alert("点个在看吧!")
echo "点个在看吧!"

640?wx_fmt=gif点击阅读原文,输入关键词,即可搜索您想要的 优快云 文章。

640?wx_fmt=png你点的每个“在看”,我都认真当成了喜欢

不同操作系统下Python环境配置方法有所不同: ### Windows系统 1. **添加Python到系统环境变量**:安装Python时,在安装向导中勾选“Add Python to PATH”选项,安装完成后,Python就会自动添加到系统环境变量中。若安装时未勾选,可手动配置:右键点击“此电脑”,选择“属性”,点击“高级系统设置”,在“系统属性”窗口中选择“高级”选项卡,点击“环境变量”,在“系统变量”列表中找到“Path”变量,点击“编辑”,然后添加Python的安装目录以及Scripts目录(如`C:\Python39`和`C:\Python39\Scripts`)。 2. **验证配置**:打开命令提示符(CMD),输入`python --version`,若显示Python版本号,则说明Python已成功配置到环境变量中;输入`pip --version`,若显示pip版本号,则说明pip也已配置成功。 ### macOS系统 1. **使用默认终端配置**:Python通常预装在macOS系统中,但版本可能较旧。若要使用最新版本,可从Python官网下载安装。安装完成后,打开终端,输入以下命令验证Python和pip是否可用: ```bash python3 --version pip3 --version ``` 2. **使用Homebrew安装(可选)**:若使用Homebrew安装Python,可先安装Homebrew,安装指令为`/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"`[^3]。安装完成后,在终端输入`brew install python`来安装Python。之后同样可通过上述命令验证配置。 ### Linux系统 1. **更新软件包列表**:打开终端,输入`sudo apt update`(适用于Debian、Ubuntu等基于Debian的系统)或`sudo yum update`(适用于CentOS、Fedora等基于Red Hat的系统)。 2. **安装Python**:以Ubuntu为例,输入`sudo apt install python3 python3-pip`来安装Python 3和pip。 3. **验证配置**:在终端输入`python3 --version`和`pip3 --version`来验证安装是否成功。 ```python # 简单的Python代码验证环境 print("Python环境配置成功!") ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值