Hi,all
议题: 本邮件收集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运行环境,例如然后在创建的环境中开发项目,隔离项目之间的第三方包依赖,不同项目之间相互不干扰。同时Pythonhttps://wiki.archlinux.org/index.php/Python从3.3开始包含了venv程序,无需单独安装。如果用户必须使用老版本的Python,例如openEuler 20.03-LTS提供的python 2.7,则需要额外安装https://wiki.archlinux.org/index.php/%E5%AE%89%E8%A3%85virtualenv。
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.10,3年多时间版本更新了21次,新版本中修复了大量bug和CVE,同步引入新的特性支持python 3.x,根据openEuler社区软件包选型规范和策略,python sig考虑跟随upstream社区版本演进路线,同步选型升级到V16.7.10,次新版本变化带来不可避免的ABI变更。 具体升级到V16.7.10之后,python2-virtualenv新增大量python2相关子包依赖,详细如下: (1)python2-appdirs ——>SP1分支仅有python3版本 (2)python2-distlib ——>SP1分支仅有python3版本 (3)python2-contextlib2 ——>版本较低,需要升级才能依赖关系 (4)python2-filelock ——>SP1分支仅有python3版本 (5)python2-importlib-metadata ——>SP1分支仅有python3版本 (6)python2-importlib-resources ——>由python-importlib-resources提供,需要引入python-importlib-resources包 ——> python2-importlib-resources依赖python2-zipp python2-zipp ——>SP1分支仅有python3版本 (7)python2-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版本中python2和python2-virtualenv相关组件,为了尽最大可能减少用户使用习惯的改变,本着把“困难留给maintainer自己 ☺ ”,openEuler 20.03-LTS-SP1版本中考虑在该版本的EPOL仓库中继续提供openEuler 20.03-LTS版本中的python2-virtualenv相关组件(仅提供二进制文件,不再承诺该组件的后续CVE和bugfix维护支持),您只需要在安装了openEuler 20.03-LTS-SP1后,配置EPOL软件仓库,使用dnf install python2-virtualenv –y方式(当然rpm –ivh方式也可以),即可安装和继续正常使用python2-virtualenv组件;该兼容性方案已由openEuler python sig验证通过;
--------------------------- Best Regards 陈亚强