Hiall

 

议题:

本邮件收集openEuler社区及openEuler相关联使用者对于openEuler 20.03-LTS-SP1版本中删除python2-virtualenv组件,仅保留python3-virtualenv组件的相关建议和意见,如果你对下面的删包方式和兼容性解决方案由其他建议,烦请邮件或者openEuler社区回复讨论。

 

社区issue讨论链接:

https://gitee.com/src-openeuler/python-virtualenv/issues/I266XK

 

Python- virtualenv组件功能简介:

Python- virtualenv组件主要是用来在同一套开发环境下为每个应用创建一套隔离Python运行环境,用户可以使用Python- virtualenv组件创建多个不同的python运行环境,例如然后在创建的环境中开发项目,隔离项目之间的第三方包依赖,不同项目之间相互不干扰。同时Python3.3开始包含了venv程序,无需单独安装。如果用户必须使用老版本的Python,例如openEuler 20.03-LTS提供的python 2.7,则需要额外安装virtualenv

 

Python- virtualenv具体使用方式如下:

Python 3 使用 python-virtualenv 提供的 virtualenv

$ virtualenv venv

Python 2 使用 python2-virtualenv 提供的 virtualenv2

$ virtualenv2 venv

 

Python- virtualenv组件中删除python2-virtualenv子包原因:

 

1、  openEuler 20.03-LT-Next开发分支定期分析所有组件包upstream社区各个版本状态和质量过程中,同步发现当前python-virtualenv版本是16.0.0,社区于2018.5.17发布该版本,该版本比较老旧,社区当前stable版本已更新到V16.7.103年多时间版本更新了21次,新版本中修复了大量bugCVE,同步引入新的特性支持python 3.x,根据openEuler社区软件包选型规范和策略,python sig考虑跟随upstream社区版本演进路线,同步选型升级到V16.7.10,次新版本变化带来不可避免的ABI变更

具体升级到V16.7.10之后,python2-virtualenv新增大量python2相关子包依赖,详细如下:

1python2-appdirs ——>SP1分支仅有python3版本

2python2-distlib ——>SP1分支仅有python3版本

3python2-contextlib2 ——>版本较低,需要升级才能依赖关系

4python2-filelock ——>SP1分支仅有python3版本

5python2-importlib-metadata ——>SP1分支仅有python3版本

6python2-importlib-resources ——>python-importlib-resources提供,需要引入python-importlib-resources

——> python2-importlib-resources依赖python2-zipp

python2-zipp ——>SP1分支仅有python3版本

7python2-pathlib2 ——>python-pathlib2提供,需要引入python-pathlib2

——>python-pathlib2依赖python2-scandir

python2-scandir ——> SP1分支仅有python3版本

 

详细变更可以参考:

a)       https://virtualenv.pypa.io/en/legacy/changes.html#v16-0-0-2018-05-16

b)       https://virtualenv.pypa.io/en/latest/changelog.html

 

2、  openEuler 20.03-LTS及其后续SP版本已明确将于2020.12.30停止维护python2及其相关子包

 

基于上面2点原因考虑,python sig考虑从openEuler 20.03-LTS-SP1版本开始,删除python2-virtualenv组件,建议对python-virtualenv组件有依赖和使用场景的使用者,推荐使用python3及对应的python-virtualenv组件;

 

Python2-virtuallenv前向兼容性解决方案:

         Python sig同时考虑到社区部分使用者前期可能存在已使用openEuler 20.03-LTS版本中python2python2-virtualenv相关组件,为了尽最大可能减少用户使用习惯的改变,本着把困难留给maintainer自己 JopenEuler 20.03-LTS-SP1版本中考虑在该版本的EPOL仓库中继续提供openEuler 20.03-LTS版本中的python2-virtualenv相关组件(仅提供二进制文件,不再承诺该组件的后续CVEbugfix维护支持),您只需要在安装了openEuler 20.03-LTS-SP1后,配置EPOL软件仓库,使用dnf install python2-virtualenv –y方式(当然rpm –ivh方式也可以),即可安装和继续正常使用python2-virtualenv组件;该兼容性方案已由openEuler python sig验证通过;

 

---------------------------

Best Regards

陈亚强