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运行环境,例如然后在创建的环境中开发项目,隔离项目之间的第三方包依赖,不同项目之间相互不干扰。同时Python从3.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.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自己
J ”,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
陈亚强