首頁 後端開發 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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

PHP和Python:解釋了不同的範例 PHP和Python:解釋了不同的範例 Apr 18, 2025 am 12:26 AM

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

在PHP和Python之間進行選擇:指南 在PHP和Python之間進行選擇:指南 Apr 18, 2025 am 12:24 AM

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

Python vs. JavaScript:學習曲線和易用性 Python vs. JavaScript:學習曲線和易用性 Apr 16, 2025 am 12:12 AM

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

PHP和Python:深入了解他們的歷史 PHP和Python:深入了解他們的歷史 Apr 18, 2025 am 12:25 AM

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

vs code 可以在 Windows 8 中運行嗎 vs code 可以在 Windows 8 中運行嗎 Apr 15, 2025 pm 07:24 PM

VS Code可以在Windows 8上運行,但體驗可能不佳。首先確保系統已更新到最新補丁,然後下載與系統架構匹配的VS Code安裝包,按照提示安裝。安裝後,注意某些擴展程序可能與Windows 8不兼容,需要尋找替代擴展或在虛擬機中使用更新的Windows系統。安裝必要的擴展,檢查是否正常工作。儘管VS Code在Windows 8上可行,但建議升級到更新的Windows系統以獲得更好的開發體驗和安全保障。

visual studio code 可以用於 python 嗎 visual studio code 可以用於 python 嗎 Apr 15, 2025 pm 08:18 PM

VS Code 可用於編寫 Python,並提供許多功能,使其成為開發 Python 應用程序的理想工具。它允許用戶:安裝 Python 擴展,以獲得代碼補全、語法高亮和調試等功能。使用調試器逐步跟踪代碼,查找和修復錯誤。集成 Git,進行版本控制。使用代碼格式化工具,保持代碼一致性。使用 Linting 工具,提前發現潛在問題。

notepad 怎麼運行python notepad 怎麼運行python Apr 16, 2025 pm 07:33 PM

在 Notepad 中運行 Python 代碼需要安裝 Python 可執行文件和 NppExec 插件。安裝 Python 並為其添加 PATH 後,在 NppExec 插件中配置命令為“python”、參數為“{CURRENT_DIRECTORY}{FILE_NAME}”,即可在 Notepad 中通過快捷鍵“F6”運行 Python 代碼。

vscode 擴展是否是惡意的 vscode 擴展是否是惡意的 Apr 15, 2025 pm 07:57 PM

VS Code 擴展存在惡意風險,例如隱藏惡意代碼、利用漏洞、偽裝成合法擴展。識別惡意擴展的方法包括:檢查發布者、閱讀評論、檢查代碼、謹慎安裝。安全措施還包括:安全意識、良好習慣、定期更新和殺毒軟件。

See all articles