platform --- 對底層平臺識別資料的存取

原始碼:Lib/platform.py


備註

特定平臺清單為按字母順序排列,Linux 包括在 Unix 小節之中。

跨平台

platform.architecture(executable=sys.executable, bits='', linkage='')

查詢給定的可執行檔案(預設為 Python 直譯器二進位制檔案)來取得各種架構資訊。

回傳一個 tuple(元組) (bits, linkage),其中包含可執行檔案所使用的位元架構和連結格式資訊。這兩個值均以字串形式回傳。

無法確定的值將回傳參數所給定之預先設置值。如果給定的位元為 '',則會使用 sizeof(pointer)(或者當 Python 版本 < 1.5.2 時為 sizeof(long))作為所支援指標大小的指示器 (indicator)。

此函式依賴於系統的 file 命令來執行實際的操作。這在幾乎所有 Unix 平臺和某些非 Unix 平臺上,只有當可執行檔案指向 Python 直譯器時才可使用。當以上要求不滿足時將會使用合理的預設值。

備註

在 macOS(也許還有其他平臺)上,可執行檔案可能是包含多種架構的通用檔案。

要取得目前直譯器的 "64 位元性 (64-bitness)",更可靠的做法是查詢 sys.maxsize 屬性:

is_64bits = sys.maxsize > 2**32
platform.machine()

回傳機器種類,例如 'AMD64'。如果該值無法確定則會回傳一個空字串。

The output is platform-dependent and may differ in casing and naming conventions.

platform.node()

回傳電腦的網路名稱(可能不是完整名稱!)。如果該值無法確定則會回傳一個空字串。

platform.platform(aliased=False, terse=False)

會儘可能附帶有用資訊地回傳一個標識底層平臺的字串。

輸出應為人類易讀的 (human readable),而非機器易剖析的 (machine parseable)。它在不同平臺上看起來可能不一致,這是有意為之的。

如果 aliased 為真值,此函式將使用各種不同於平臺通用名稱的別名來回報系統名稱,例如 SunOS 將被回報為 Solaris。system_alias() 函式被用於實作此功能。

terse 設為真值將導致此函式只回傳標識平臺所需的最小量資訊。

在 3.8 版的變更: 在 macOS 上,如果 mac_ver() 回傳的釋出版字串非空字串,此函式現在會使用它以取得 macOS 版本而非 darwin 版本。

platform.processor()

回傳(真實的)處理器名稱,例如 'amdk6'

如果該值無法確定則將回傳空字串。請注意,許多平臺都不提供此資訊或是簡單地回傳與 machine() 相同的值。NetBSD 則會提供此資訊。

platform.python_build()

回傳一個 tuple (buildno, builddate),表示字串形式的 Python 建置編號和日期。

platform.python_compiler()

回傳一個標識用於編譯 Python 的編譯器的字串。

platform.python_branch()

回傳一個標識 Python 實作 SCM 分支的字串。

platform.python_implementation()

回傳一個標識 Python 實作的字串。可能的回傳值有:'CPython'、'IronPython'、'Jython'、'PyPy'。

platform.python_revision()

回傳一個標識 Python 實作 SCM 修訂版的字串。

platform.python_version()

將 Python 版本以字串 'major.minor.patchlevel' 形式回傳。

請注意此回傳值不同於 Python sys.version,它總是會包括 patchlevel(預設為 '0')。

platform.python_version_tuple()

將 Python 版本以字串 tuple (major, minor, patchlevel) 形式回傳。

請注意此回傳值不同於 Python sys.version,它總是會包括 patchlevel(預設為 '0')。

platform.release()

回傳系統的釋出版本,例如 '2.2.0''NT',如果該值無法確定則將回傳一個空字串。

platform.system()

回傳系統/OS 的名稱,例如 'Linux''Darwin''Java''Windows'。如果該值無法確定則回傳一個空字串。

On iOS and Android, this returns the user-facing OS name (i.e, 'iOS, 'iPadOS' or 'Android'). To obtain the kernel name ('Darwin' or 'Linux'), use os.uname().

platform.system_alias(system, release, version)

回傳做為某些系統所使用的常見行銷名稱之別名的 (system, release, version)。它還會在可能導致混淆的情況下對資訊進行一些重新排序。

platform.version()

回傳系統的釋出版本資訊,例如 '#3 on degas'。如果該值無法確定則將回傳一個空字串。

On iOS and Android, this is the user-facing OS version. To obtain the Darwin or Linux kernel version, use os.uname().

platform.uname()

具有高可攜性 (portable) 的 uname 介面。回傳包含六個屬性的 namedtuple()systemnodereleaseversionmachineprocessor

processor 會延遲解析,有需求時才會解析

注意:前兩個屬性名稱與 os.uname() 提供的名稱不同,它們分別命名為 sysnamenodename

無法確定的條目會被設為 ''

在 3.3 版的變更: 將結果從 tuple 改為 namedtuple()

在 3.9 版的變更: processor 會延遲解析,並非立即解析。

platform.invalidate_caches()

Clear out the internal cache of information, such as the uname(). This is typically useful when the platform's node() is changed by an external process and one needs to retrieve the updated value.

在 3.14 版被加入.

Java 平台

platform.java_ver(release='', vendor='', vminfo=('', '', ''), osinfo=('', '', ''))

Jython 的版本介面。

回傳一個 tuple (release, vendor, vminfo, osinfo),其中 vminfo 為 tuple (vm_name, vm_release, vm_vendor)osinfo 為 tuple (os_name, os_version, os_arch)。無法確定的值將被設為由參數所給定的預設值(預設均為 '')。

自從版本 3.13 後不推薦使用,將會自版本 3.15 中移除。: It was largely untested, had a confusing API, and was only useful for Jython support.

Windows 平台

platform.win32_ver(release='', version='', csd='', ptype='')

從 Windows 登錄檔 (Window Registry) 取得額外的版本資訊並回傳一個 tuple (release, version, csd, ptype),它代表 OS 發行版、版本號、CSD 級別 (service pack) 和 OS 類型(多個/單個處理器)。

一點提示:ptype 在單個處理器的 NT 機器上為 'Uniprocessor Free',而在多個處理器的機器上為 'Multiprocessor Free''Free' 是指該 OS 版本沒有除錯程式。它也可能以 'Checked' 表示,代表該 OS 版本使用了除錯程式,即檢查引數、範圍等的程式。

platform.win32_edition()

回傳一個代表目前 Windows 版本的字串。可能的值包括但不限於 'Enterprise''IoTUAP''ServerStandard''nanoserver'

在 3.8 版被加入.

platform.win32_is_iot()

如果 win32_edition() 回傳的 Windows 版本被識別為 IoT 版則回傳 True

在 3.8 版被加入.

macOS 平台

platform.mac_ver(release='', versioninfo=('', '', ''), machine='')

取得 Mac OS 版本資訊並將其回傳為 tuple