Python 3.8 已發佈,現在是切換至新版本的好時機嗎?

来源:https://www.cnblogs.com/7758520lzy/archive/2020/01/17/12207199.html
-Advertisement-
Play Games

Python 3.8 已於前兩周正式發佈,不過目前大多數開發者主要使用的仍是 Python 3.7.x 或更舊的版本。 ! 事實上,立刻切換到使用 Python 3.8 可能會引發一些問題。想知道何時切換至 Python 3.8?下文將簡要概述切換主要的 Python 版本以及進行切換時可能會遇到的 ...


Python 3.8 已於前兩周正式發佈,不過目前大多數開發者主要使用的仍是 Python 3.7.x 或更舊的版本。

事實上,立刻切換到使用 Python 3.8 可能會引發一些問題。想知道何時切換至 Python 3.8?下文將簡要概述切換主要的 Python 版本以及進行切換時可能會遇到的問題(來自一名開發者的心得經驗)。

 

 

1.缺少軟體包

 

opencv-python是一個十分受歡迎的軟體包,其下載量約為 5000 萬。但正如本文提到的一樣,如果你現在(2019年10月28日)嘗試在 Python 3.8 上安裝它會發現並不起作用:

 

$ docker run python:3.8-slim pip install opencv-pythonERROR: Could not find a version that satisfies the requirement opencv-python (from versions: none)ERROR: No matching distribution found for opencv-python

 

原因為何?如果我們現在在 PyPI 上訪問 opencv-python 的文件頁面,將會看到沒有可用的面向 Python 3.8 的軟體包。晚些時候這個問題可能會被修複。但是現在的情況是,在新的主要版本發佈之後的不久時間內,我們將無法下載許多庫。

 

有時候,這些問題只需重新構建庫即可解決,有時候則需要進行一些代碼調整。但不管是什麼問題,Python 的主要版本和軟體包的可用性之間都存在一些滯後。

 

 

2.Python 中的錯誤

 

Python 3.7.0 於 2018 年 6 月 27 日發佈,3.7.1 於 4 個月後 2018 年 10 月 20 日發佈,其中包括許多錯誤修正。所以按照慣例,Python 3.8 將來也會有一個錯誤修複版本,但是鑒於主要版本之間的間隔期為 18 個月,因此會產生很多新的但不會廣泛使用的代碼。這意味著後續版本將具有大量的錯誤修複。

 

3.無法真正使用新的語法

 

Python 3.8 引入了新語法,但其他工具尚未同步跟進以支持新語法,例如自動格式化程式和代碼檢測工具等。除非“配套設施”已同步更新,否則我們將無法真正使用新的語法。

 

所以什麼時候切換至使用主要的新 Python 版本?

 

至少,我們需要等到:

 

  • 所有的庫都明確支持新的 Python 版本。

  • 所依賴的所有工具都明確支持新的 Python 版本。

 

 

因此,不妨在新的主要 Python 版本發佈後等待幾個月,我們再去嘗試。如果確實迫不及待,可以等到第一個小版本更新發佈後再嘗試,這裡的情況是 Python 3.8.1。

Python 3.8 已於前兩周正式發佈,不過目前大多數開發者主要使用的仍是 Python 3.7.x 或更舊的版本。

 

事實上,立刻切換到使用 Python 3.8 可能會引發一些問題。想知道何時切換至 Python 3.8?下文將簡要概述切換主要的 Python 版本以及進行切換時可能會遇到的問題(來自一名開發者的心得經驗)。

 

 

1.缺少軟體包

 

opencv-python是一個十分受歡迎的軟體包,其下載量約為 5000 萬。但正如本文提到的一樣,如果你現在(2019年10月28日)嘗試在 Python 3.8 上安裝它會發現並不起作用:

 

$ docker run python:3.8-slim pip install opencv-pythonERROR: Could not find a version that satisfies the requirement opencv-python (from versions: none)ERROR: No matching distribution found for opencv-python

 

原因為何?如果我們現在在 PyPI 上訪問 opencv-python 的文件頁面,將會看到沒有可用的面向 Python 3.8 的軟體包。晚些時候這個問題可能會被修複。但是現在的情況是,在新的主要版本發佈之後的不久時間內,我們將無法下載許多庫。

 

有時候,這些問題只需重新構建庫即可解決,有時候則需要進行一些代碼調整。但不管是什麼問題,Python 的主要版本和軟體包的可用性之間都存在一些滯後。

 

 

2.Python 中的錯誤

 

Python 3.7.0 於 2018 年 6 月 27 日發佈,3.7.1 於 4 個月後 2018 年 10 月 20 日發佈,其中包括許多錯誤修正所以按照慣例,Python 3.8 將來也會有一個錯誤修複版本,但是鑒於主要版本之間的間隔期為 18 個月,因此會產生很多新的但不會廣泛使用的代碼。這意味著後續版本將具有大量的錯誤修複。

 

3.無法真正使用新的語法

 

Python 3.8 引入了新語法,但其他工具尚未同步跟進以支持新語法,例如自動格式化程式和代碼檢測工具等。除非“配套設施”已同步更新,否則我們將無法真正使用新的語法。

 

所以什麼時候切換至使用主要的新 Python 版本?

 

至少,我們需要等到:

 

  • 所有的庫都明確支持新的 Python 版本。

  • 所依賴的所有工具都明確支持新的 Python 版本。

 

 

因此,不妨在新的主要 Python 版本發佈後等待幾個月,我們再去嘗試。如果確實迫不及待,可以等到第一個小版本更新發佈後再嘗試,這裡的情況是 Python 3.8.1。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 這兩天開始讀由Edward Crawley(愛德華 克勞利)、Bruce Cameron(布魯斯 卡梅隆)、Daniel Selva(丹尼爾 塞爾瓦)著作的系統架構,一開始看目錄以為是介紹系統軟體架構的書,也是我買它的緣由,但粗略看完序和第一章第二章後不經肅然起敬,這本書是真的好,該書面向對象是適用 ...
  • 對於這場比賽,我真的是有點划水了,做了倆題,做第三題的時候實在是不知道什麼地方卡住了,然後我家來了客人,被帶出去吃飯去了,ε=(´ο`*)))唉!!! B - Just Eat It! 這道題是個經典的DP題,我對於遞推還不是特別熟悉,得找到題目的狀態轉移方程。 B[ i ] = max{ A[ i ...
  • 一、字元串相關的常用方法簡介​ package com.bjpowernode.java_learning; ​ public class D74_1_StringCommonMethod { public static void main(String[] args) { //1.轉為大寫 Sys ...
  • import wave r = r"D:\沫沫醬 - 舊傷口.wav" # 一個.wav格式文件 with wave.open(r, "rb") as f: # 讀取文件格式等 params = f.getparams() nchannels, sampwidth, framerate, nfram ...
  • 一、寫在前面 作為一名測試,有時候經常會遇到需要錄屏記錄自己操作,方便後續開發同學定位。以前都是用ScreenToGif來錄屏製作成動態圖,偶爾的機會看到python也能實現。那就趕緊學習下。 二、效果展示 三、知識串講 這次要講的東西可能比較多了,涉及到pyqt5 GUI軟體的製作、QThread ...
  • 學Python的很多,不只是程式員學Python,運營、產品、測試都在學Python 除了互聯網,辦公一族都開始學Python了,學Python的理由千萬條。 因為人生苦短 這句話最初出自《Java 編程思想》作者Bruce Eckel。 有因為Python牛到飛起的 再看看Python鳥怎麼喝水的 ...
  • \ ​ GNE(GeneralNewsExtractor)是一個通用新聞網站正文抽取模塊,輸入一篇新聞網頁的 HTML, 輸出正文內容、標題、作者、發佈時間、正文中的圖片地址和正文所在的標簽源代碼。GNE在提取今日頭條、網易新聞、游民星空、 觀察者網、鳳凰網、騰訊新聞、ReadHub、新浪新聞等數百 ...
  • 收集的Android測試或者開發中常用的aadb命令,可以使用Ctrl+F快速搜索### ADB命令集錦: adb --help //adb幫助 adb start-server //啟動adb server adb kill-server //關閉adb server adb devices // ...
一周排行
    -Advertisement-
    Play Games
  • Dapr Outbox 是1.12中的功能。 本文只介紹Dapr Outbox 執行流程,Dapr Outbox基本用法請閱讀官方文檔 。本文中appID=order-processor,topic=orders 本文前提知識:熟悉Dapr狀態管理、Dapr發佈訂閱和Outbox 模式。 Outbo ...
  • 引言 在前幾章我們深度講解了單元測試和集成測試的基礎知識,這一章我們來講解一下代碼覆蓋率,代碼覆蓋率是單元測試運行的度量值,覆蓋率通常以百分比表示,用於衡量代碼被測試覆蓋的程度,幫助開發人員評估測試用例的質量和代碼的健壯性。常見的覆蓋率包括語句覆蓋率(Line Coverage)、分支覆蓋率(Bra ...
  • 前言 本文介紹瞭如何使用S7.NET庫實現對西門子PLC DB塊數據的讀寫,記錄了使用電腦模擬,模擬PLC,自至完成測試的詳細流程,並重點介紹了在這個過程中的易錯點,供參考。 用到的軟體: 1.Windows環境下鏈路層網路訪問的行業標準工具(WinPcap_4_1_3.exe)下載鏈接:http ...
  • 從依賴倒置原則(Dependency Inversion Principle, DIP)到控制反轉(Inversion of Control, IoC)再到依賴註入(Dependency Injection, DI)的演進過程,我們可以理解為一種逐步抽象和解耦的設計思想。這種思想在C#等面向對象的編 ...
  • 關於Python中的私有屬性和私有方法 Python對於類的成員沒有嚴格的訪問控制限制,這與其他面相對對象語言有區別。關於私有屬性和私有方法,有如下要點: 1、通常我們約定,兩個下劃線開頭的屬性是私有的(private)。其他為公共的(public); 2、類內部可以訪問私有屬性(方法); 3、類外 ...
  • C++ 訪問說明符 訪問說明符是 C++ 中控制類成員(屬性和方法)可訪問性的關鍵字。它們用於封裝類數據並保護其免受意外修改或濫用。 三種訪問說明符: public:允許從類外部的任何地方訪問成員。 private:僅允許在類內部訪問成員。 protected:允許在類內部及其派生類中訪問成員。 示 ...
  • 寫這個隨筆說一下C++的static_cast和dynamic_cast用在子類與父類的指針轉換時的一些事宜。首先,【static_cast,dynamic_cast】【父類指針,子類指針】,兩兩一組,共有4種組合:用 static_cast 父類轉子類、用 static_cast 子類轉父類、使用 ...
  • /******************************************************************************************************** * * * 設計雙向鏈表的介面 * * * * Copyright (c) 2023-2 ...
  • 相信接觸過spring做開發的小伙伴們一定使用過@ComponentScan註解 @ComponentScan("com.wangm.lifecycle") public class AppConfig { } @ComponentScan指定basePackage,將包下的類按照一定規則註冊成Be ...
  • 操作系統 :CentOS 7.6_x64 opensips版本: 2.4.9 python版本:2.7.5 python作為腳本語言,使用起來很方便,查了下opensips的文檔,支持使用python腳本寫邏輯代碼。今天整理下CentOS7環境下opensips2.4.9的python模塊筆記及使用 ...