python編譯器好用嗎
python是解釋型語言,沒有編譯器。我猜你可能是想問編輯器。新手用默認的IDLE 足夠了,盡量不要養成依賴自動補全的功能。熟練了之後我推薦使用vscode,微軟開發的一個開源軟體,有許多插件可以使用,寫一些簡單的代碼很方便
2. Python速度編譯神器學生來看
Python速度編譯神器快來體驗吧
Python速度編譯神器
Python的運行速度快嗎?雖說不同場景不同定論, 但整體而言
, 它沒有C、Java快。這也導致Python憑借可讀性、簡單易
上手、良好的生態系統橫行AI領域時,一提到速度,就成為眾
多開發者頭疼的問題。
為了解決這一難題,麻省理工學院的計算機科學家出手了,他
們共同研發了一種名為Codon的Python編譯器, 可以將
Python代碼轉化為本地機器代碼, 而不會對運行時的性能產生
影響。
當前, Codon已經在Git Hub上開源:https:
//github.com/exaloop/codon, 斬獲6300個Star。
1、Codon與C/C++性能相當
"在單線程上, 比Python的典型速度提高了10-100倍或更多,
"Codon repo寫道, "Codon的性能通常與C/C++的性能相當
(有時甚至更好)。"
codon
與Python不同的是, Codon支持本地多線程, 這可以使速度
提高許多倍。
Codon最初是作為一個在Python中創建高性能特定領域語言
(DSL, domain-specific language) 的框架而開發的。DSL
是專注於特定目的的語言, 而不是像Python或C這樣的通用
編程語言。
據官方Git Hub repo透露, Codon源於Seq項目, 後者是一個
用於生物信息學和遺傳學的DSL, 現如今它已經成長為一個與
Python 3基本兼容的語言編譯器。
近期, 外媒The Register通過該工具的研究團隊內部最新分享
了一個關於Codon的論文。
這篇論文指出, "與其他面向性能的Python實現(如PyPy或
Numba) 不同, Codon是作為一個獨立的系統從頭開始構建的
, 它可以提前編譯為靜態可執行文件, 並且不與現有的Python
運行時(如CPython或RPython) 綁定執行。因此, Codon
可以實現更好的性能,並克服運行時的特定問題,如全局解釋
器鎖"。
2、測試
那麼Codon是否真的如說的那樣快?在Codon論壇上, 一位
開發者進行了測試:
CPython 3.11
PyPy 7.3.9
Codon compiled
Codon with python interpreter
最終發現, 一個簡單的Codon編譯的斐波那契腳本比CPython
版本快70多倍。
據Codon官方文檔顯示, 雖然Codon的語法和語義與Python
的幾乎相同,但還是有一些值得一提的區別,如數據類型方面
整數。Codon的int是一個64位有符號的整數, 而Python
的(在版本3之後) 可以是任意大的。然而Codon通過Int[N]
支持更大的整數,其中N是位寬。
字元串。Codon目前使用ASCII字元串, 與Python的
unicode字元串不同。
字典。Codon的字典類型不保留插入順序, 與Python 3.6的
不同。
此外, Codon和Python在類型檢查、數值運算、模塊等維度
還有些許的不同, 更詳細的內容可參考:https:
//docs.exaloop.io/codon/general/differences據悉, Codon
已經被商業化地應用在金融和生物信息學、深度學習等領域。
3. Python編譯器推薦
1、CPython
是Python語言規范的參考實現,能夠優先獲得Python語言的最新、最強的功能,CPython是由C語言編寫而成,不但可以從Python代碼中調用C代碼的函數,還可以直接在Python中使用大量現有的C代碼庫。
2、Brython
Brython可用於在瀏覽器中運行包含了Python 3腳本的Web應用。
3、PyPy Python
雖然第一個推薦的是在Python中使用最廣泛的編譯器,但卻不是最快的,PyPy採用的是即時的編譯概念,在代碼執行前,就直接編譯為機器代碼,因此其執行速度提高了近4倍。
4、Jython或JPython
使用率第二高,Jython最初被稱為JPython,是通過Python語言來實現Java虛擬機的,開發者既可以將現有的Java包和代碼庫,導入自己的Python程序中,還可以在Java程序中嵌入Python腳本。
5、Cython
Cython與CPython不同,更像是一個超集,允許開發者在代碼中結合C和Python,從而生成C語言代碼類型的輸出,以供任何一種C/C++編譯器進行後續編譯。
6、Skulpt
流行的速度非常快,主要目的是提供一種良好的在線式Python編譯器,也可以通過讓Web應用引擎包含Skulpt,以方便開發者編寫出被用於前端的Python腳本。
7、PyJS
是另一款完全用Python去開發Web應用的編譯工具,在後台,PyJS會在使用內置的Ajax框架之前,將Python代碼編譯為JavaScript。
8、WinPython
是Python的"即用型"發行版,也就意味著用戶無需安裝,即可在Windows
PC上運行,作為另一種Python的實現,WinPython編譯器不僅帶來了Python執行環境,而且還包含了諸如:Scipy、Numpy、以及Pandas等各種Python庫。
