platform
--- 実行中プラットフォームの固有情報を参照する¶
ソースコード: Lib/platform.py
注釈
プラットフォーム毎にアルファベット順に並べています。Linuxについては Unixセクションを参照してください。
クロスプラットフォーム¶
- platform.architecture(executable=sys.executable, bits='', linkage='')¶
executable で指定した実行可能ファイル(省略時はPythonインタープリタのバイナリ)の各種アーキテクチャ情報を調べます。
戻り値はタプル
(bits, linkage)
で、アーキテクチャのビット数と実行可能ファイルのリンク形式を示します。どちらの値も文字列で返ります。値を決定できない場合はパラメータプリセットから与えられる値を返します。bits に
''
を与えた場合、サポートされているポインタサイズを知るためにsizeof(pointer)
(Python バージョン < 1.5.2 ではsizeof(long)
) が使用されます。この関数は、システムの
file
コマンドを使用します。file
はほとんどのUnixプラットフォームと一部の非Unixプラットフォームで利用可能ですが、file
コマンドが利用できず、かつ executable が Pythonインタープリタでない場合には適切なデフォルト値が返ります。注釈
macOS (とひょっとすると他のプラットフォーム) では、実行可能ファイルは複数のアーキテクチャを含んだユニバーサル形式かもしれません。
現在のインタープリターが "64-bit" であるかどうかを調べるには、
sys.maxsize
の方が信頼できます:is_64bits = sys.maxsize > 2**32
- platform.machine()¶
'AMD64'
のような、機種を返します。不明な場合は空文字列を返します。
- platform.node()¶
コンピュータのネットワーク名を返します。ネットワーク名は完全修飾名とは限りません。不明な場合は空文字列を返します。
- platform.platform(aliased=False, terse=False)¶
実行中プラットフォームを識別する文字列を返します。この文字列には、有益な情報をできるだけ多く付加しています。
戻り値は機械で処理しやすい形式ではなく、人間にとって読みやすい 形式となっています。異なったプラットフォームでは異なった戻り値となるようになっています。
aliased が真なら、システムの名称として一般的な名称ではなく、別名を使用して結果を返します。たとえば、SunOS は Solaris となります。この機能は
system_alias()
で実装されています。terse が真なら、プラットフォームを特定するために最低限必要な情報だけを返します。
- platform.processor()¶
'amdk6'
のような、(現実の)プロセッサ名を返します。不明な場合は空文字列を返します。NetBSDのようにこの情報を提供しない、または
machine()
と同じ値しか返さないプラットフォームも多く存在しますので、注意してください。
- platform.python_build()¶
Pythonのビルド番号と日付を、
(buildno, builddate)
のタプルで返します。
- platform.python_compiler()¶
Pythonをコンパイルする際に使用したコンパイラを示す文字列を返します。
- platform.python_branch()¶
Python実装のバージョン管理システム上のブランチを特定する文字列を返します。
- platform.python_implementation()¶
Python実装を指定する文字列を返します。戻り値は: 'CPython', 'IronPython', 'Jython', 'PyPy' のいずれかです。
- platform.python_revision()¶
Python実装のバージョン管理システム上のリビジョンを特定する文字列を返します。
- platform.python_version()¶
Python のバージョンを、
'major.minor.patchlevel'
形式の文字列で返します。sys.version
と異なり、patchlevel(デフォルトでは0)も必ず含まれています。
- platform.python_version_tuple()¶
Pythonのバージョンを、文字列のタプル
(major, minor, patchlevel)
で返します。sys.version
と異なり、patchlevel(デフォルトでは'0'
)も必ず含まれています。
- platform.release()¶
'2.2.0'
や'NT'
のような、システムのリリース情報を返します。不明な場合は空文字列を返します。
- platform.system()¶
'Linux'
、'Darwin'
、'Java'
、'Windows'
のような、システム/OS 名を返します。不明な場合は空文字列を返します。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'
), useos.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()¶
極めて可搬性の高い uname インターフェースです。
system
,node
,release
,version
,machine
,processor
の6つの属性を持ったnamedtuple()
を返します。processor
is resolved late, on demand.Note: the first two attribute names differ from the names presented by
os.uname()
, where they are namedsysname
andnodename
.不明な項目は
''
となります。バージョン 3.3 で変更: 結果が タプル から
namedtuple()
へ変更されました。バージョン 3.9 で変更:
processor
is resolved late instead of immediately.
Java プラットフォーム¶
- platform.java_ver(release='', vendor='', vminfo=('', '', ''), osinfo=('', '', ''))¶
Jython用のバージョンインターフェースです。
タプル
(release, vendor, vminfo, osinfo)
を返します。vminfo はタプル(vm_name, vm_release, vm_vendor)
、osinfo はタプル(os_name, os_version, os_arch)
です。不明な項目は引数で指定した値(デフォルトは''
) となります。Deprecated since version 3.13, will be removed in version 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='')¶
Get additional version information from the Windows Registry and return a tuple
(release, version, csd, ptype)
referring to OS release, version number, CSD level (service pack) and OS type (multi/single processor). Values which cannot be determined are set to the defaults given as parameters (which all default to an empty string).As a hint: ptype is
'Uniprocessor Free'
on single processor NT machines and'Multiprocessor Free'
on multi processor machines. The'Free'
refers to the OS version being free of debugging code. It could also state'Checked'
which means the OS version uses debugging code, i.e. code that checks arguments, ranges, etc.
- platform.win32_edition()¶
Returns a string representing the current Windows edition, or
None
if the value cannot be determined. Possible values include but are not limited to'Enterprise'
,'IoTUAP'
,'ServerStandard'
, and'nanoserver'
.Added in version 3.8.
- platform.win32_is_iot()¶
win32_edition()
によって返された Windows のエディションが IoT エディションの時True
を返します。Added in version 3.8.
macOS プラットフォーム¶
- platform.mac_ver(release='', versioninfo=('', '', ''), machine='')¶
macOS のバージョン情報を、タプル
(release, versioninfo, machine)
で返します。versioninfo は、タプル(version, dev_stage, non_release_version)
です。不明な項目は
''
となります。タプルの要素は全て文字列です。
iOS プラットフォーム¶
- platform.ios_ver(system='', release='', model='', is_simulator=False)¶
iOS のバージョン情報を取得し、次の属性付きで
namedtuple()
として返します。system
は OS 名です。'iOS'
または'iPadOS'
となります。release
は、 iOS のバージョン番号の文字列です。 ('17.2'
など)model
はデバイスモデルの識別子です。これは物理デバイスでは'iPhone13,2'
、シミュレーターでは'iPhone'
のような文字列になります。is_simulator
は、アプリがシミュレーター上で実行されているのか、物理デバイス上で実行されているのかを示す真偽値です。
決定不能な項目は、引数として指定されたデフォルトに設定されます。
Unix プラットフォーム¶
- platform.libc_ver(executable=sys.executable, lib='', version='', chunksize=16384)¶
executableで指定したファイル(省略時はPythonインタープリタ)がリンクしているlibcバージョンの取得を試みます。戻り値は文字列のタプル
(lib, version)
で、不明な項目は引数で指定した値となります。この関数は、実行形式に追加されるシンボルの細かな違いによって、libcのバージョンを特定します。この違いは gcc でコンパイルされた実行可能ファイルでのみ有効だと思われます。
chunksize にはファイルから情報を取得するために読み込むバイト数を指定します。
Linux プラットフォーム¶
- platform.freedesktop_os_release()¶
Get operating system identification from
os-release
file and return it as a dict. Theos-release
file is a freedesktop.org standard and is available in most Linux distributions. A noticeable exception is Android and Android-based distributions.Raises
OSError
or subclass when neither/etc/os-release
nor/usr/lib/os-release
can be read.On success, the function returns a dictionary where keys and values are strings. Values have their special characters like
"
and$
unquoted. The fieldsNAME
,ID
, andPRETTY_NAME
are always defined according to the standard. All other fields are optional. Vendors may include additional fields.Note that fields like
NAME
,VERSION
, andVARIANT
are strings suitable for presentation to users. Programs should use fields likeID
,ID_LIKE
,VERSION_ID
, orVARIANT_ID
to identify Linux distributions.以下はプログラム例です:
def get_like_distro(): info = platform.freedesktop_os_release() ids = [info["ID"]] if "ID_LIKE" in info: # ids are space separated and ordered by precedence ids.extend(info["ID_LIKE"].split()) return ids
Added in version 3.10.
Android プラットフォーム¶
- platform.android_ver(release='', api_level=0, manufacturer='', model='', device='', is_emulator=False)¶
Android のデバイス情報を取得し、次の属性付きで
namedtuple()
として返します。決定不能な値は、引数として指定されたデフォルトに設定されます。release
- Android バージョンの文字列 ("14"
など) 。api_level
- API level of the running device, as an integer (e.g.34
for Android 14). To get the API level which Python was built against, seesys.getandroidapilevel()
.manufacturer
- Manufacturer name.model
- Model name – typically the marketing name or model number.device
- Device name – typically the model number or a codename.is_emulator
-True
if the device is an emulator;False
if it's a physical device.
Google maintains a list of known model and device names.
Added in version 3.13.