python中uss的用法_OpenStack Ussuri只支持Python3,你该怎么办?

原标题:OpenStack Ussuri只支持Python3,你该怎么办?

在Ussuri的发布周期中,OpenStack放弃了对Python2的所有支持。所有的项目都已经完成了CI作业的更新,使它们能在Python3下工作。这一成果使软件能够删除所有Python2测试以及随之进行的配置。

Python2-> Python3

Python2.0于2000年正式发布,OpenStack于2010年成立,此后一直使用Python2.0作为基础语言。Python基金会意识到,为了防止用户不得不以落后或困难的方式执行任务,需要对软件进行大的改进。

“我们在2000年发布了Python2.0。几年后,我们意识到需要做出重大改变来改进Python。所以在2006年,我们启动了Python3.0。很多人没有升级,我们也不想伤害他们。因此,多年来,我们一直在改进和发布Python2和Python3。”

2015年,Python基金会在多个平台上非常明确地宣布,将迁移到Python3并停止使用Python2。最后期限是2020年。

OpenStack启动对Python3的支持

很明显,OpenStack也不能支持Python2太久了。因为不可能修复Python2上的安全漏洞,OpenStack最好完全放弃,转而专注于Python3。

OpenStack对Python3的支持始于2013年,许多开发人员做出了贡献。在社区付出了这么多努力之后,在Stein发布周期(2018年9月)中,社区达成共识要在Python3下运行OpenStack。这意味着许多开发人员的大量艰苦工作。

OpenStack Train(2019年10月):默认Python3

在OpenStack Train发行版(2019年10月)中,OpenStack默认在Python3上测试。这意味着你可以满怀信心地将云升级到Python3环境。OpenStack Train发布时支持经过测试的Python3,但仍然支持Python2.7。同时,继续测试最新的Python3版本,OpenStack技术委员会(TC)开始为每个发布周期定义测试运行时。OpenStack将在即将开始的下一个发布周期中瞄准Python3.8。

OpenStack Ussuri(2020年5月):仅支持Python3,放弃Python2

在Ussuri发布周期中,OpenStack放弃了对Python2的所有支持。所有的项目都已经完成了CI作业的更新,使它们能够在Python3下工作。这一成果使软件能够删除所有的Python2测试以及随之而来的配置。

在Ussuri发布周期中,我们首先开始计划放弃对Python2.7的支持。当许多项目相互依赖并集成CI/CD时,删除Python2.7并不是一件容易的事情。例如,如果Nova放弃了对Python2.7的支持,只支持Python3,它就会打破Cinder和许多其他项目的CI/CD。我们准备了一个时间表,并将工作分为三个阶段,首先放弃服务的支持,然后放弃库或测试工具。

第一阶段:Ussuri开始->Ussuri-1里程碑:要启动的OpenStack服务放弃py2.7支持。第二阶段:里程碑1->里程碑2:通用库和测试工具

第三阶段:里程碑2:最终审计。

尽管如此,在最初的工作中还是有一些东西搞砸了。因此,我们默认DevStack as Python3,这确实有帮助。在第二阶段,当我们开始将Tempest和其他测试工具变成仅支持Python3时,很多原本稳定的分支测试开始崩溃。这是显而易见的,因为Tempest和许多其他测试工具都是无分支的,这意味着master版本将用于测试OpenStack的当前版本和旧版本。所以所有的Python2.7测试工作都在使用Tempest master版本。最后,在py3 env上安装的Tempest进行capping和fixing,使所有稳定的分支和master测试通过。

就在Ussuri发布的前几周,我们完成了这项工作,让OpenStack只支持Python3,并更新了wiki页面。Swift和Storlet这两个项目将继续支持Python2.7一到两个周期。

“OpenStack仅支持Python3”对用户/升级意味着什么?

如果你现在的云位于Python3 env上,那么根本不需要担心。如果它在Python2.7上,并且你正在升级到Ussuri,那么你需要检查env是否有Python3.6或更高版本可用。从Ussuri版本开始,OpenStack将只在Python3.6或更高版本上工作。例如,如果你想安装Nova Ussuri版本,那么如果Python3.6或更高版本不可用,它将报错。这是通过安装配置文件中的元数据(“python requires=>=3.6”)完成的。以下是 Ussuri版本中安装配置文件的截图:

python-requires = >=3.6

classifier =

Environment :: OpenStack

Intended Audience :: Information Technology

Intended Audience :: System Administrators

License :: OSI Approved :: Apache Software License

Operating System :: POSIX :: Linux

Programming Language :: Python

Programming Language :: Python :: 3

Programming Language :: Python :: 3.6

Programming Language :: Python :: 3.7

Programming Language :: Python :: 3 :: Only

Programming Language :: Python :: Implementation :: CPython

如果你使用的发行版没有Python3.6或更高版本,则需要先升级。在Python2.7上没有解决方法或任何兼容的方法来继续运行OpenStack。唯一的方法就是升级Python版本。下面的FAQ部分将介绍一些关于Python升级的问题。

FAQ

Q:Python2到Python3的升级是否在上游CI/CD中测试过?

A:不是直接的,但正在间接地测试。我们没有进行py2 setup到py3 setup的上游升级测试。然而,以前的OpenStack版本,如Stein和Train,都在这两个python版本上进行了测试。如果你要将OpenStack从Stein或Train升级到Ussuri,那么应该没有任何问题。

Q:从Ussuri到旧稳定分支的backport变化将如何与Python2.7兼容?

A:我们仍然运行Python2.7作业,直到进行稳定的Train测试,这样来自Ussuri或更高版本(仅在Python3上测试)的任何backport都将在Train或更早的稳定分支上进行,同时也在Python2.7上测试。如果Python2.7上有任何中断,将在backport之前修复。这样我们就可以使Python2.7支持所有的稳定分支。

Q:像Tempest这样的无分支测试框架(使用master版本进行旧版本的测试)是否也能在Python2.7中继续工作?

答:不能。我们已经发布了最新的兼容版本Python2.7,用于Tempest和其他无分支的交付。无分支意味着工具master版本正被用来测试当前或较旧的OpenStack版本。例如,Tempest 23.0.0可以用作Python 2.7支持的版本,Tempest 24.0.0或master只能用作Python 3的。但是有一种方法可以继续测试旧的Python2.7版本(直到你升级云并希望Tempest master测试云)。你可以在Python3节点或虚拟env上运行Tempest,并继续使用主版本测试Python2.7云。只要API可以从单独的测试节点访问,或者虚拟env Tempest正在运行,Tempest不需要与其他OpenStack服务安装在同一个系统上。

https://superuser.openstack.org/articles/openstack-ussuri-is-python3-only-upgrade-impact/返回搜狐,查看更多

责任编辑:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Applications for Python Python is used in many application domains. Here's a sampling. The Python Package Index lists thousands of third party modules for Python. Web and Internet Development Python offers many choices for web development: Frameworks such as Django and Pyramid. Micro-frameworks such as Flask and Bottle. Advanced content management systems such as Plone and django CMS. Python's standard library supports many Internet protocols: HTML and XML JSON E-mail processing. Support for FTP, IMAP, and other Internet protocols. Easy-to-use socket interface. And the Package Index has yet more libraries: Requests, a powerful HTTP client library. BeautifulSoup, an HTML parser that can handle all sorts of oddball HTML. Feedparser for parsing RSS/Atom feeds. Paramiko, implementing the SSH2 protocol. Twisted Python, a framework for asynchronous network programming. Scientific and Numeric Python is widely used in scientific and numeric computing: SciPy is a collection of packages for mathematics, science, and engineering. Pandas is a data analysis and modeling library. IPython is a powerful interactive shell that features easy editing and recording of a work session, and supports visualizations and parallel computing. The Software Carpentry Course teaches basic skills for scientific computing, running bootcamps and providing open-access teaching materials. Education Python is a superb language for teaching programming, both at the introductory level and in more advanced courses. Books such as How to Think Like a Computer Scientist, Python Programming: An Introduction to Computer Science, and Practical Programming. The Education Special Interest Group is a good place to discuss teaching issues. Desktop GUIs The Tk GUI library is included with most binary distributions of Python. Some toolkits that are usable on several platforms are available separately: wxWidgets Kivy, for writing multitouch applications. Qt via pyqt or pyside Platform-specific toolkits are als
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值