成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Anaconda、CPython以及更多:關(guān)于各Python發(fā)行版,我們需要了解的一切

譯文
開發(fā) 后端
在本文中,我們將探討Python語言的各類運(yùn)行時(shí)與發(fā)行版選項(xiàng),并探討其各自適合哪些用例。

【51CTO.com快譯】在本文中,我們將探討Python語言的各類運(yùn)行時(shí)與發(fā)行版選項(xiàng),并探討其各自適合哪些用例。 

[[226392]]

在選擇Python語言進(jìn)行軟件開發(fā)時(shí),我們面對(duì)的實(shí)際是一套大型語言生態(tài)系統(tǒng)——其中包含各類涵蓋無數(shù)編程需求的軟件包。但除了從GUI開發(fā)到機(jī)器學(xué)習(xí)的各類庫之外,各位還能夠從多種Python運(yùn)行時(shí)中作出選擇——其中部分運(yùn)行時(shí)也許更適合您當(dāng)前的用例條件。

下面,我們將簡單介紹目前最常用的幾款Python發(fā)行版——從標(biāo)準(zhǔn)實(shí)現(xiàn)(CPython)到針對(duì)速度進(jìn)行優(yōu)化的版本(PyPy),再到特殊用例(Anaconda、ActivePython)乃至最初為完全不同的其他語言設(shè)計(jì)的運(yùn)行時(shí)(Jython、IronPython)。

目錄

  • CPython
  • Anaconda Python
  • ActivePython
  • PyPy
  • Jython

一、CPython

CPython屬于Python參考實(shí)現(xiàn)方案,可算是所有其他Python衍生發(fā)行版的一套標(biāo)準(zhǔn)化版本。CPython利用C語言編寫而成,而其編寫者包含多位Python語言頂級(jí)決策層中的核心人員。

1.CPython用例

CPython屬于Python的參考實(shí)現(xiàn)版本,因?yàn)槠湓趦?yōu)化方面表現(xiàn)得最為保守。當(dāng)然,這并不是缺點(diǎn),而是設(shè)計(jì)取向。Python的維護(hù)者們希望將CPython打造為Python最具廣泛兼容性與標(biāo)準(zhǔn)化的實(shí)現(xiàn)方案。

CPython最適合對(duì)Python標(biāo)準(zhǔn)的兼容性與一致性要求較高的用戶。此外,CPython同樣適用于希望以最基本方式使用Python并愿意為此放棄某些便捷性的專業(yè)人士。

舉例來說,您需要進(jìn)行些許調(diào)整才能利用CPython設(shè)置虛擬環(huán)境。而其他發(fā)行版(Anaconda)則在工作區(qū)設(shè)置中提供更多自動(dòng)化功能。

2.CPython的局限性

CPython并不像Python的其他版本那樣對(duì)性能作出深度優(yōu)化。其不提供原生JIT(即時(shí))編譯器,不提供加速數(shù)學(xué)庫,也沒有用于提升性能的第三方附加選項(xiàng)。

您當(dāng)然可以根據(jù)需求自行添加,但其并不直接提供綁定包。當(dāng)然,這一切都是設(shè)計(jì)取向所決定,旨在確保CPython作為一套參考實(shí)現(xiàn)版本能夠最大程度實(shí)現(xiàn)兼容性與標(biāo)準(zhǔn)化。而性能優(yōu)化——開發(fā)人員可以選擇其他配合工具包進(jìn)行添加。

此外,CPython僅提供一組用于使用Python的基準(zhǔn)性工具。舉例來說,pip軟件包管理器會(huì)從Python原生PyPI軟件包庫當(dāng)中獲取并安裝各軟件包。如果開發(fā)者允許,Pip甚至可以安裝經(jīng)過預(yù)編譯的二進(jìn)制文件(通過輪盤發(fā)布格式),但無法安裝PyPI所不包含的任何其他軟件包依賴項(xiàng)。

二、Anaconda Python

Anaconda源自Anaconda公司之手(原名為Continuum Analytics),其設(shè)計(jì)目標(biāo)在于服務(wù)那些需要由商業(yè)供應(yīng)商提供支持且具備企業(yè)支持服務(wù)的Python開發(fā)者。Anaconda Python的主要用例包括數(shù)學(xué)、統(tǒng)計(jì)學(xué)、工程、數(shù)據(jù)分析、機(jī)器學(xué)習(xí)以及其他相關(guān)應(yīng)用。

1.Anaconda Python用例

Anaconda捆綁有Python商業(yè)與科學(xué)使用場景當(dāng)中的各類常用庫——包括SciPy、NumPy以及Numba等等,同時(shí)通過一套定制化軟件包管理系統(tǒng)提供更多庫訪問能力。

Anaconda最為出色的特性在于將上述元素進(jìn)行了高效組合。在安裝之后,Anaconda提供桌面應(yīng)用程序Anaconda Navigator,可通過方便的GUI幫助用戶使用Anaconda環(huán)境中的各類功能。相較于CPython,Anaconda當(dāng)中的組件搜索、更新以及使用流程都更為簡便。

其另一大優(yōu)勢,在于Anaconda能夠根據(jù)特定軟件包的需求處理Python生態(tài)系統(tǒng)之外的組件。其中專門為Anaconda打造的conda軟件包管理器能夠根據(jù)外部軟件要求安裝Python以及第三方軟件包。

2.Anaconda Python的局限性

由于Anaconda當(dāng)中包含大量實(shí)用性庫,且只需要簡單操作即可安裝更多庫,因此Anaconda的安裝體積往往要比CPython大得多。基本CPython安裝運(yùn)行大約需要100 MB空間,而Anaconda則會(huì)很快增長至GB級(jí)別。如果您的資源有限,那么這有可能產(chǎn)生問題。

幫助Anaconda瘦身的方法之一在于安裝Miniconda,這是一套精簡版本的Anaconda,其中只包含啟動(dòng)與運(yùn)行所必需的部分。如果必要,您可以將軟件包添加到Miniconda當(dāng)中,并關(guān)注各軟件包具體要消耗多少空間。

三、ActivePython

與Anaconda類似,ActivePython同樣由營利性企業(yè)創(chuàng)建及維護(hù)——ActiveState公司。該公司還在銷售多種語言運(yùn)行時(shí)以及多語言Komodo IDE。

1.ActivePython用例

ActivePython主要面向企業(yè)用戶與數(shù)據(jù)科學(xué)家——即希望使用Python語言,但又不愿把大量精力浪費(fèi)在Python的組裝與管理方面。ActivePython使用Python中的常規(guī)pip軟件包管理器,但同時(shí)亦以認(rèn)證壓縮包的形式提供數(shù)百套通用庫,外加英特爾數(shù)學(xué)核心庫等其他一些具有第三方依賴關(guān)系的公共庫。

2.ActivePython的局限性

ActivePython對(duì)軟件包外部依賴關(guān)系的處理方式存在一大潛在缺點(diǎn)。如果大家希望將現(xiàn)有項(xiàng)目(例如TensorFlow)升級(jí)至具有復(fù)雜依賴關(guān)系的較新版本,則需要同時(shí)升級(jí)ActivePython。如果開發(fā)工作在與特定版本的項(xiàng)目相關(guān)聯(lián)的環(huán)境中進(jìn)行,那么這并不會(huì)造成影響。但目前的開發(fā)工作往往需要緊跟前沿版本的發(fā)布,在這種情況下大家往往會(huì)遇到很多麻煩。

四、PyPy

 PyPy 屬于CPython解釋器的替代品,其利用即時(shí)(JIT)編譯以加速Python程序的執(zhí)行。根據(jù)實(shí)際執(zhí)行的任務(wù)情況,其性能提升可能非常顯著。

1.PyPy用例

人們對(duì)于Python——特別是CPython的抱怨之聲,主要圍繞其速度表現(xiàn)展開。在默認(rèn)情況下,Python的運(yùn)行速度遠(yuǎn)不及C語言——差距甚至可能達(dá)到數(shù)百倍。PyPy JIT將Python代碼編譯為機(jī)器語言,從而帶來平均7.7倍于CPython的運(yùn)行速度。在某些特定任務(wù)中,其提速效果能夠達(dá)到50倍。

更重要的是,開發(fā)人員能夠較為輕松地享受到這些便利。將CPython換成PyPy,您就基本完成了提速工作。

2.PyPy的局限性

PyPy一般更適用于處理“純”Python應(yīng)用程序。由于PyPy會(huì)模擬CPYthon的原生二進(jìn)制接口,因此在處理NumPy等包含C庫接口的Python軟件包時(shí),其表現(xiàn)并不理想。不過隨著時(shí)間推移,PyPy的開發(fā)者們已經(jīng)逐步解決了這個(gè)問題,并使得PyPy能夠更好地同依賴于C擴(kuò)展的Python軟件包進(jìn)行兼容。但必須承認(rèn),雖然已經(jīng)有所改善,PyPy對(duì)C擴(kuò)展的支持仍然有限。

PyPy的另一大短板在于運(yùn)行時(shí)大小。Windows上的核心CPython運(yùn)行時(shí)——不包含標(biāo)準(zhǔn)庫——約為4 MB,而PyPy運(yùn)行時(shí)則在32 MB左右。同樣需要注意的是,PyPy還長期立足Python的2.x分支,例如目前面向Python 3.x版本的PyPy目前只在32位Windows系統(tǒng)上提供beta測試版本。(PyPy已經(jīng)在Linux與MacOS上提供同時(shí)面向Python 2x與3.x的64位版本。)

五、Jython

JVM(Java虛擬機(jī))能夠作為除Java之外的多種語言的運(yùn)行時(shí)選項(xiàng)。這份長的名單包括Groovy、Scala、Clojure、Kotlin、Python以及——沒錯(cuò),當(dāng)然還有Jython

1.Jython用例

Jython項(xiàng)目能夠?qū)ython 2.x編譯為JVM字節(jié)碼,并在JVM上運(yùn)行生成的程序。在某些情況下,Jython編譯的程序在運(yùn)行速度上甚至高于CPython編譯程序——但并非始終如此。

Jython提供的最大優(yōu)勢在于能夠與Java生態(tài)系統(tǒng)中的其他部分直接進(jìn)行互操作。Java的使用范圍比Python更為廣泛。通過在JVM上運(yùn)行Python,開發(fā)人員將能夠享受并非為Python開發(fā)的龐大庫與框架生態(tài)系統(tǒng)。同樣,Jython亦允許Java開發(fā)人員使用Python庫。

2.Jython的局限性

Jython最大的弊端在于其僅支持Python的2.x版本。目前對(duì)Python 3.x版本的支持能力尚在開發(fā)當(dāng)中,但仍需要相當(dāng)一段時(shí)間。當(dāng)下,還沒有任何相關(guān)版本放出。

同樣需要注意的是,雖然Jython能夠?qū)ython引入JVM,但卻無法將Python引入Android。由于Jython目前不具備適用于Android的端口,因此Jython不能用于開發(fā)Andoird應(yīng)用。

六、IronPython

類似于Jython的JVM上Python實(shí)現(xiàn)方案定位,IronPython屬于一套立足.Net運(yùn)行時(shí)——或者CLR(公共語言運(yùn)行時(shí))——的Python實(shí)現(xiàn)方案。IronPython利用CLR的DLR(動(dòng)態(tài)語言運(yùn)行時(shí))以允許Python程序以等同于CPython的動(dòng)態(tài)水平實(shí)現(xiàn)運(yùn)行。

1.IronPython 用例

與Jython類似,IronPython同樣屬于一種橋梁。其最主要的用例在于實(shí)現(xiàn)Python與.Net間的互操作性。現(xiàn)有.Net程序集能夠利用Python的本地導(dǎo)入與對(duì)象操作語法在IronPython程序中實(shí)現(xiàn)加載。

此外,我們也可以將IronPython代碼編譯成程序集,并直接運(yùn)行或者接受其他語言的調(diào)用。但需要注意的是,其中的MSIL(微軟中間語言)無法直接由其他.Net語言進(jìn)行訪問,因?yàn)槠洳⒉恢С止舱Z言規(guī)范。

2.IronPython的局限性

與Jython類似,IronPython目前只支持Python 2.x版本。不過IronPython 3.x實(shí)現(xiàn)方案已經(jīng)處于緊鑼密鼓的開發(fā)當(dāng)中。

原文標(biāo)題:Anaconda, CPython, PyPy, and more: Know your Python distributions,作者:Serdar Yegulalp 

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】

責(zé)任編輯:龐桂玉 來源: 51CTO
相關(guān)推薦

2021-08-09 14:40:02

物聯(lián)網(wǎng)IOT智能家居

2022-03-14 16:50:54

物聯(lián)網(wǎng)IoT云計(jì)算

2023-12-06 14:07:56

數(shù)字孿生AI

2023-12-29 09:50:51

智能機(jī)器人人工智能

2024-04-10 11:47:34

2023-06-25 10:14:46

智能機(jī)器人人工智能

2024-08-26 11:59:35

2020-05-12 16:10:34

Wi-Fi網(wǎng)狀網(wǎng)絡(luò)網(wǎng)絡(luò)

2023-05-28 18:21:32

2023-03-29 21:05:03

布線結(jié)構(gòu)化布線

2018-07-18 09:00:00

區(qū)塊鏈職位工作崗位

2018-09-27 18:56:25

區(qū)塊鏈

2014-04-11 11:30:39

Linux發(fā)行版

2021-08-06 06:51:15

TypeScript Any 類型

2020-04-21 14:49:35

物聯(lián)網(wǎng)數(shù)據(jù)技術(shù)

2020-05-12 10:43:24

物聯(lián)網(wǎng)數(shù)據(jù)技術(shù)

2023-08-11 08:00:00

人工智能Keras 3.0

2015-08-05 09:20:49

LinuxWindows 10

2020-09-11 10:55:10

useState組件前端

2023-02-10 08:44:05

KafkaLinkedIn模式
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 免费观看视频www | a成人| 日韩毛片在线免费观看 | 亚洲欧洲一区 | www.4虎影院 国产999精品久久久影片官网 | 久久国产视频播放 | 亚洲欧洲在线观看视频 | 一级全黄视频 | 国产在线不卡 | 精品久久久久久久久久久 | 天天综合成人网 | 国产精品久久久久久模特 | 中文字幕一区二区三区不卡 | 91精品国产综合久久福利软件 | 欧美韩一区二区 | 伊人中文字幕 | 99精品国产一区二区青青牛奶 | 亚洲成年人免费网站 | 电影91久久久 | 国产精品一区二区久久 | 中文字幕在线播放不卡 | 日韩精品一区在线 | 亚洲精精品| 国产成人免费视频网站高清观看视频 | 国产精品久久777777 | 91精品国产乱码久久久 | 日韩中文字幕一区二区 | 久草精品视频 | 久久精品这里 | 成人在线免费观看av | 久草视频观看 | 日韩久久久久 | 亚洲成人精品一区 | 久久综合久久综合久久 | 日韩免费 | 国产成年人视频 | 日干夜干 | 成人在线视频网址 | 一区二区三区不卡视频 | 综合久久av | 99热在这里只有精品 |