搜尋
首頁後端開發Python教學python為什麼跨平台

python為什麼跨平台

May 17, 2019 pm 01:39 PM
python

python可以跨平台的原因:原始碼跨平台;Python指令最終會轉換成c語言指令集,然後c語言的指令集再編譯為機器碼,最後執行。跨平台都是有限的:1、不能有windows特殊的東西;2、編碼方式要相容。

python為什麼跨平台

跨平台概念是軟體開發中重要的概念,即不依賴作業系統,也不依賴硬體環境。

一個作業系統下開發的應用,放到另一個作業系統下方依然可以運作。相對而言如果某種電腦語言不用修改程式碼即可做到高度跨平台,那麼此語言就越抽象,硬體控制力就越低,只適合開發高度抽象的模型系統。諸如java,delphi和易語言、Python,都已做到了跨平台。它們將可以在多種系統下開發,運行和維護。

大部分電腦語言從絕對意義而言,都是跨平台的:因為都是以高級的、人類可讀的方式來對CPU發號指令,這樣也就沒必要依賴於任何作業系統。但如果要用系統的零件工具箱,來新建使用者圖形介面(GUI),就可能會用到開發者特定係統中的API函數或函式庫類別。雖然C 是跨平台的,但Windows下用到Win32 API的C 程序,一般就不能在Unix機器上編譯。不同編譯器對語言規範的解釋也有所差異。這樣的話,在針對不同系統進行建置之前,程式就得加以考慮。

一些如Java這樣的語言,從一開始就意識到要在各個平台下運行,所以跨平台在其平台的本地語言環境中已經實現。例如,Java可以跨平台使用,正是由於Swing函式庫在許多平台下的實作。類似的,能進行跨平台的文件訪問,是因為有各自平台下文件訪問的庫。以此類推,各種跨平台問題,都需要各自的本地庫來解決。 wxWidgets框架就是這樣的一個跨平台庫,根據不同的跨平台問題,提供了許多不同的解決方案;類似的庫有許多,可以根據不同語言的跨平台開發,而採用相應的庫。

針對每種作業系統、CPU,而提供並測試各自的編譯版本,這種做法的可行性很小;開源軟體則允許使用者自己來編譯目的碼(object code),這樣在跨平台方面更好一些。類似的,那些解釋型語言,或需要虛擬機器的語言,也更符合跨平台的要求,因為使用者也要自行編譯。 Sun公司的Java虛擬機器Hotspot,只針對幾種而非全部平台,提供編譯好的二進位檔。例如,Sun對於GNU/Linux,只支援i386平台,但如果誰在PowerPC或SPARC電腦上執行Linux,就必須自己編譯本地的機器碼(machinecode),或是使用第三方軟體,才能執行Java程式。

許多API(應用程式介面)都依賴平台。 OpenGL可以看作是跨平台的,因為其不依賴任何特定的作業系統、CPU架構或某個牌子的圖形設備。特定平台的API可以在其他系統上作為相容層而新建,例如WINE的庫,Windows程式就可以在UNIX系統上運作。

另外許多程式語言還有跨平台的擴展以及中間件,這樣程式設計師對於同樣的原始碼,只要進行一點小修改,就可以在不同平台下編譯/運行,例如Qt和wxWidgets 。

Python什麼可以跨平台?

因為Python是將這些自己的指令,最終轉換成了c語言指令集,然後再c語言的指令集再進行編譯為機器碼,然後運行,這也是為什麼python的性能差的原因了(當然,有很多提速的辦法)。

當然這也是有限制的:

1、不能有windows特殊的東西;

2、編碼方式要相容。

支援常見的主流平台,如AIX、HPUX、Solaris、Linux、Windows等,除Windows外常見的Unix、Linux平台均附有原生的Python,但版本一般較低。關於跨平台和他跨平台語言一樣,要注意有些個別模組是單一平台特有的,整體的跨平台性還是很好的,不必為適應多平台寫多套代碼。

但這不是說一點限制都沒有:首先,同一個版本的中間文件.py和.pyc以及.pyo是跨平台的;其次,PC與移動終端,如:手機、Pad不可跨平台(原因見下一條);最後,不能跨處理器架構,如:Intel與ARM,64位元與32位元。

以上是python為什麼跨平台的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
Python和時間:充分利用您的學習時間Python和時間:充分利用您的學習時間Apr 14, 2025 am 12:02 AM

要在有限的時間內最大化學習Python的效率,可以使用Python的datetime、time和schedule模塊。 1.datetime模塊用於記錄和規劃學習時間。 2.time模塊幫助設置學習和休息時間。 3.schedule模塊自動化安排每週學習任務。

Python:遊戲,Guis等Python:遊戲,Guis等Apr 13, 2025 am 12:14 AM

Python在遊戲和GUI開發中表現出色。 1)遊戲開發使用Pygame,提供繪圖、音頻等功能,適合創建2D遊戲。 2)GUI開發可選擇Tkinter或PyQt,Tkinter簡單易用,PyQt功能豐富,適合專業開發。

Python vs.C:申請和用例Python vs.C:申請和用例Apr 12, 2025 am 12:01 AM

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。Python以简洁和强大的生态系统著称,C 则以高性能和底层控制能力闻名。

2小時的Python計劃:一種現實的方法2小時的Python計劃:一種現實的方法Apr 11, 2025 am 12:04 AM

2小時內可以學會Python的基本編程概念和技能。 1.學習變量和數據類型,2.掌握控制流(條件語句和循環),3.理解函數的定義和使用,4.通過簡單示例和代碼片段快速上手Python編程。

Python:探索其主要應用程序Python:探索其主要應用程序Apr 10, 2025 am 09:41 AM

Python在web開發、數據科學、機器學習、自動化和腳本編寫等領域有廣泛應用。 1)在web開發中,Django和Flask框架簡化了開發過程。 2)數據科學和機器學習領域,NumPy、Pandas、Scikit-learn和TensorFlow庫提供了強大支持。 3)自動化和腳本編寫方面,Python適用於自動化測試和系統管理等任務。

您可以在2小時內學到多少python?您可以在2小時內學到多少python?Apr 09, 2025 pm 04:33 PM

兩小時內可以學到Python的基礎知識。 1.學習變量和數據類型,2.掌握控制結構如if語句和循環,3.了解函數的定義和使用。這些將幫助你開始編寫簡單的Python程序。

如何在10小時內通過項目和問題驅動的方式教計算機小白編程基礎?如何在10小時內通過項目和問題驅動的方式教計算機小白編程基礎?Apr 02, 2025 am 07:18 AM

如何在10小時內教計算機小白編程基礎?如果你只有10個小時來教計算機小白一些編程知識,你會選擇教些什麼�...

如何在使用 Fiddler Everywhere 進行中間人讀取時避免被瀏覽器檢測到?如何在使用 Fiddler Everywhere 進行中間人讀取時避免被瀏覽器檢測到?Apr 02, 2025 am 07:15 AM

使用FiddlerEverywhere進行中間人讀取時如何避免被檢測到當你使用FiddlerEverywhere...

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能