OpenStack Ussuri只支持Python3,你該怎麼辦?

2020-12-22 深圳熱線

原標題:OpenStackUssuri只支持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。這意味著許多開發人員的大量艱苦工作。

OpenStackTrain(2019年10月):默認Python3

在OpenStackTrain發行版(2019年10月)中,OpenStack默認在Python3上測試。這意味著你可以滿懷信心地將雲升級到Python3環境。OpenStackTrain發布時支持經過測試的Python3,但仍然支持Python2.7。同時,繼續測試最新的Python3版本,OpenStack技術委員會(TC)開始為每個發布周期定義測試運行時。OpenStack將在即將開始的下一個發布周期中瞄準Python3.8。

OpenStackUssuri(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:最終審計。

儘管如此,在最初的工作中還是有一些東西搞砸了。因此,我們默認DevStackasPython3,這確實有幫助。在第二階段,當我們開始將Tempest和其他測試工具變成僅支持Python3時,很多原本穩定的分支測試開始崩潰。這是顯而易見的,因為Tempest和許多其他測試工具都是無分支的,這意味著master版本將用於測試OpenStack的當前版本和舊版本。所以所有的Python2.7測試工作都在使用Tempestmaster版本。最後,在py3env上安裝的Tempest進行capping和fixing,使所有穩定的分支和master測試通過。

就在Ussuri發布的前幾周,我們完成了這項工作,讓OpenStack只支持Python3,並更新了wiki頁面。Swift和Storlet這兩個項目將繼續支持Python2.7一到兩個周期。

「OpenStack僅支持Python3」對用戶/升級意味著什麼?

如果你現在的雲位於Python3env上,那麼根本不需要擔心。如果它在Python2.7上,並且你正在升級到Ussuri,那麼你需要檢查env是否有Python3.6或更高版本可用。從Ussuri版本開始,OpenStack將只在Python3.6或更高版本上工作。例如,如果你想安裝NovaUssuri版本,那麼如果Python3.6或更高版本不可用,它將報錯。這是通過安裝配置文件中的元數據(「pythonrequires=>=3.6」)完成的。以下是Ussuri版本中安裝配置文件的截圖:

python-requires=>=3.6

classifier=

Environment::OpenStack

IntendedAudience::InformationTechnology

IntendedAudience::SystemAdministrators

License::OSIApproved::ApacheSoftwareLicense

OperatingSystem::POSIX::Linux

ProgrammingLanguage::Python

ProgrammingLanguage::Python::3

ProgrammingLanguage::Python::3.6

ProgrammingLanguage::Python::3.7

ProgrammingLanguage::Python::3::Only

ProgrammingLanguage::Python::Implementation::CPython

如果你使用的發行版沒有Python3.6或更高版本,則需要先升級。在Python2.7上沒有解決方法或任何兼容的方法來繼續運行OpenStack。唯一的方法就是升級Python版本。下面的FAQ部分將介紹一些關於Python升級的問題。

FAQ

Q:Python2到Python3的升級是否在上遊CI/CD中測試過?

A:不是直接的,但正在間接地測試。我們沒有進行py2setup到py3setup的上遊升級測試。然而,以前的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版本。例如,Tempest23.0.0可以用作Python2.7支持的版本,Tempest24.0.0或master只能用作Python3的。但是有一種方法可以繼續測試舊的Python2.7版本(直到你升級雲並希望Tempestmaster測試雲)。你可以在Python3節點或虛擬env上運行Tempest,並繼續使用主版本測試Python2.7雲。只要API可以從單獨的測試節點訪問,或者虛擬envTempest正在運行,Tempest不需要與其他OpenStack服務安裝在同一個系統上。

https://superuser.openstack.org/articles/openstack-ussuri-is-python3-only-upgrade-impact/

來源:搜狐

相關焦點

  • 雲計算中openstack架構最受歡迎,那麼其優點是什麼?
    下面用一張圖帶大家了解一下openstack架構的基本組成思路。現在隨著cloud技術的發展,對於真正一線的公有雲企業來說,採用openstack架構的難度越來越大。因為openstack的核心特性是gitlab,其sla服務相對較弱,大部分時間用來做數據的存儲工作,對於大部分的用戶來說,只需要部署mirai,即可用來部署部署伺服器上的應用程式。
  • 保姆級Openstack實踐-從零開始手把手教你搭建私有雲1.6
    5.9 Neutron:網絡服務5.9.1 概述Neutron 為整個 OpenStack 環境提供網絡支持,包括二層交換,三層路由,負載均衡,防火牆和 *** 等。Neutron 提供了一個靈活的框架,通過配置,無論是開源還是商業軟體都可以被用來實現這些功能。
  • 《小灰教你零基礎學python》-Python入門語言
    Python是一種清晰而強大的面向對象程式語言,不過還沒入門的小白不要想多了哈,不是你的對象(女朋友?)Python目前是分成2個大版本,python2 和python3,python是完全免費的,所以不用擔心版權問題,因為python2已經廢棄,所以咱們這套課程完全基於python3。
  • 用python列印你的寵物小精靈吧
    需要注意的一點是,這裡的a = 8 中的『 = 』不是我們數學符號中的等號,而是賦值號,python中的等號用兩個連續的等號表示:==這段代碼的語序是:把8賦值給字母a,a在這裡就是我們自定義的一個變量,而且它的容量很小,只能放入一個值,當你要放入一個新值時,它原來的值就會被覆蓋,我們通過一段代碼來理解它。
  • python分支結構if-else解決你的選擇困難症,學習python第3天
    而在python程序中,也存在選擇。python分支結構if-else就是python程序中的選擇,作用py程式設計師的我們應用如何來使用python分支結構呢?下面羽憶教程為你介紹。 而python中一般用於解決這種多結果問題就需要使用到分支結構。其定義是根據給出的條件是否成立,從而決定其執行的步驟或者輸出的結果。一般python分支結構分為三種:單分支結構、雙分支結構和多分支結構,其使用到的關鍵詞有if、elif和else三個,下面為你介紹三種分支結構的使用。
  • 3種方法學會python模塊使用,3分鐘直接上手一個python繪圖程序
    三種查看模塊下具有哪些函數的方法:1、在python代碼編輯器中,使用模塊加"."號,就出現該模塊下所有的函數,也就是這個模塊下所有隱藏的技能2、第二種方式,在python shell控制臺上查看我們先 import turtle 導入模塊,然後,使用 dir(turtle) ,就顯示所有turtle下面具有的技能:
  • python格式化代碼只懂autopep8?這裡有更好的
    star 3.5kautopep8 是一個國人中知名度最高和使用最廣泛的自動格式化工具。一個較為寬鬆的格式化工具,只會以最低限度的標準對不符合 pep8 標準的代碼進行修正。可能無法滿足那些有特定需求,或想讓代碼看起來更乾淨更漂亮的人。
  • 初學者如何用「python爬蟲」技術抓取網頁數據?
    想要入門Python 爬蟲首先需要解決四個問題:1.熟悉python編程2.了解HTML3.了解網絡爬蟲的基本原理4.學習使用python爬蟲庫1、我們要做的是查找適合初學者的教科書或在線教程,並花費十多天的時間,您可以對python的基礎知識有三到四點了解,這時候你可以玩玩爬蟲了!
  • Python編程:開發工具(IDE)大匯總(附官方下載)
    ,支持實時編寫並運行代碼、方程式,同時支持可視化圖像輸出等等,其安裝與啟動方式很簡單:安裝python,請參考往期視頻教程:Python安裝全過程詳解與驗證方法安裝pip安裝器,請參考往期文章:Python神器:找不到模塊怎麼辦?
  • python入門教程06-01(python語法入門之字符編碼)
    #階段3、python解釋器解釋執行剛剛讀入的內存的內容,開始識別python語法2.4 總結python解釋器與文件本編輯的異同如下#1、相同點:前兩個階段二者完全一致,都是將硬碟中文件的內容讀入內存,詳解如下python解釋器是解釋執行文件內容的,因而python解釋器具備讀py
  • python爬蟲100個入門項目
    貓眼網電影評分45新聞監控46你好汙啊47ofo共享單車爬蟲48QQ空間49QQ 群50清華大學網絡學堂爬蟲整理不易,希望大家多多支持CSV 了解一下68python爬取 20w 表情包之後,從此你就成為了微信鬥圖屆的高手69python爬取你喜歡的公眾號的所有原創文章,然後搞成PDF慢慢看70當 python 遇到你的微信的時候,你才發現原來你的微信好友是這樣的71高考要來了
  • 如何安裝python3
    如何安裝python3首先找到python的官網: https://www.python.org/然後點擊Download然後選擇對應的版本,這裡選擇的是windows>跳轉到對應的界面以後,選擇python3.5版本,64位下載即可下載完成以後有一個.exe的可執行文件雙擊這個可執行文件,然後進行選擇安裝。
  • 序列比對在biopython中的處理
    在biopython中,支持對序列比對的結果進行讀寫,解析,以及運行序列比對的程序。 首先來看下多序列比對,多序列比對的軟體較多,比如clustalw, muscle, mafft等,輸出結果的格式也很多,比如clustal, fasta, phylip等。
  • 實戰Python3.7+64位 Exe 反編譯
    本文轉載自【微信公眾號:MicroPest,ID:gh_696c36c5382b】,經微信公眾號授權轉載,如需轉載與原文作者聯繫一、生成python3.7+64位Exe程序在反之前要先編一個。當導入一個模塊時,類型為.pyc的文件將由解釋器自動生成,這將加速該模塊未來的導入。因此,這些文件僅在由另一個.py文件或模塊導入時從.py文件創建。注意,使用.pyc文件只會加快程序的加載速度,而不會加快程序的實際執行速度。這意味著您可以通過在一個模塊中編寫主程序來提高啟動時間,這個模塊由另一個更小的模塊導入。
  • 付費的知識星球要過期了,python 教你怎麼辦
    python 爬蟲的常用技巧總結,帶你輕鬆入門,今天補上一篇實戰指南,爬取知識星球裡某個星球的所有數據,對,你沒有聽錯,是所有數據,包括了內容、問答、評論、圖片、文件、甚至是誰點了贊!當然,本篇文章需要你有一點 python 基礎,如果沒有的話,建議你先收藏,去找一些教程學習一下這門工具人語言。好了,廢話不多說,馬上開始。首先,導入所需要的包:
  • Python3.9官方文檔翻譯版python簡介之列表
    自譯:循環的主體內容是縮進的:縮進是python對語句進行分組的方式。在交互提示中,你必須使用空格或制表符對每一個縮進行進行操作,實際上你需要使用一個文本編輯器對python進行更複雜的輸入操作。所有優秀的文本編輯器都有自動縮進功能。在交互界面輸入一個複合語句時,你必須使用一個空行已提示操作完成(因為解析器不能判定你輸入的哪一行為最後一行)。
  • Python最佳經典學習路線
    如何學習Python python語言基礎:(帶你熟悉python語言的特性,學會使用python開發環境,使用python開發一些簡單的案例) (1)Python3入門,數據類型,字符串 (2)判斷/循環語句,函數,
  • Python3.9官方文檔翻譯版之解釋器的使用1
    」,將「/usr/local/bin」置於你的UNIX shell的搜索路徑中通過鍵入「python 3.9」的命令來啟動它。the Microsoft Store, the python3.9 command will be available.
  • python與c語言的語法有哪些不一樣的
    在眾多程式語言之中,想必很多人都聽說過Python和C語言,在進行編程學習之前,大家都會問:python和c語言的區別有哪些?我該如何選擇?接下來我們來看看吧。3、應用:Python是一種通用程式語言,多範式的,支持面向對象編程、程序編程以及函數編程;C是結構化程式語言,允許使用函數、選擇、迭代,主要用於硬體相關的應用程式。
  • python教程之十GUI界面
    matplotlib --default-time=100,如果最後安裝成功了即可,不過經常超時失敗,主要是因為默認的網站還未支持Python3.8。因為網絡問題,該安裝包我安裝多次,所以加上安裝參數—upgrade,同時加上default-time=100防止超時報錯。沒有加upgrade參數時,報錯如下;執行python -m pip list查看我們安裝的python模塊有哪些。驗證matplotlib模塊是否可用。