# 15.15. `platform` --- 実行中プラットフォームの固有情報を参照する

バージョン 2.3 で追加.

ソースコード: Lib/platform.py

注釈

プラットフォーム毎にアルファベット順に並べています。Linuxについては Unixセクションを参照してください。

## 15.15.1. クロスプラットフォーム

`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インタープリタでない場合には適切なデフォルト値が返ります。

  注釈

  Mac OS X (とひょっとすると他のプラットフォーム) では、実行可能ファイルは複数のアーキテクチャを含んだユニバーサル形式かもしれません。

  現在のインタプリタが "64-bit" であるかどうかを調べるには、 `sys.maxsize` の方が信頼できます:

      is_64bits = sys.maxsize > 2**32

`platform.``machine`()

  `'i386'` のような、機種を返します。不明な場合は空文字列を返します。

`platform.``node`()

  コンピュータのネットワーク名を返します。ネットワーク名は完全修飾名とは限りません。不明な場合は空文字列を返します。

`platform.``platform`(aliased=0, terse=0)

  実行中プラットフォームを識別する文字列を返します。この文字列には、有益な情報をできるだけ多く付加しています。

  戻り値は機械で処理しやすい形式ではなく、人間にとって読みやすい 形式となっています。異なったプラットフォームでは異なった戻り値となるようになっています。

  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実装のバージョン管理システム上のブランチを特定する文字列を返します。

  バージョン 2.6 で追加.

`platform.``python_implementation`()

  Python実装を指定する文字列を返します。戻り値は: 'CPython', 'IronPython', 'Jython', 'PyPy' のいずれかです。

  バージョン 2.6 で追加.

`platform.``python_revision`()

  Python実装のバージョン管理システム上のリビジョンを特定する文字列を返します。

  バージョン 2.6 で追加.

`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'`, `'Windows'`, `'Java'` のような、システム/OS 名を返します。不明な場合は空文字列を返します。

`platform.``system_alias`(system, release, version)

  マーケティング目的で使われる一般的な別名に変換して `(system, release, version)` を返します。混乱を避けるために、情報を並べなおす場合があります。

`platform.``version`()

  `'#3 on degas'` のような、システムのリリース情報を返します。不明な場合は空文字列を返します。

`platform.``uname`()

  非常に可搬性の高い uname インターフェースで、実行中プラットフォームを示す情報を、文字列のタプル `(system, node, release, version, machine, processor)` で返します。

  `os.uname()` と異なり、複数のプロセッサ名が候補としてタプルに追加される場合があります。

  不明な項目は `''` となります。

## 15.15.2. 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)` です。不明な項目は引数で指定した値(デフォルトは `''`) となります。

## 15.15.3. Windows プラットフォーム

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

  Windows レジストリから追加のバージョン情報を取得して、タプル `(release, version, csd, ptype)` を返します。それぞれ、OS リリース、バージョン番号、CSD レベル (サービスパック)、OS タイプ (マルチ/シングルプロセッサー) を指しています。

  参考: ptype はシングルプロセッサのNT上では `'Uniprocessor Free'`、マルチプロセッサでは `'Multiprocessor Free'` となります。'Free' がついている場合はデバッグ用のコードが含まれていないことを示し、'Checked' がついていれば引数や範囲のチェックなどのデバッグ用コードが含まれていることを示します。

  注釈

  この関数は、Mark Hammondの `win32all` がインストールされた環境で良く動作しますが、Python 2.3 以上なら一応動作します。(Python 2.6からサポートされました) もちろん、この関数が使えるのはWin32互換プラットフォームのみです。

### 15.15.3.1. Win95/98 固有

`platform.``popen`(cmd, mode='r', bufsize=None)

  可搬性の高い `popen()` インターフェースで、可能なら `win32pipe.popen()` を使用します。 `win32pipe.popen()` はWindows NTでは利用可能ですが、Windows 9xではハングしてしまいます。

## 15.15.4. Mac OS プラットフォーム

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

  Mac OSのバージョン情報を、タプル `(release, versioninfo, machine)` で返します。versioninfo は、タプル `(version, dev_stage, non_release_version)` です。

  不明な項目は `''` となります。タプルの要素は全て文字列です。

## 15.15.5. Unix プラットフォーム

`platform.``dist`(distname='', version='', id='', supported_dists=('SuSE', 'debian', 'redhat', 'mandrake', ...))

  この関数は、現在 `linux_distribution()` が提供している機能の古いバージョンです。新しいコードを書くときは、 `linux_distribution()` を利用してください。

  `linux_distribution()` との違いは、 `dist()` は常に `supported_dists` パラメータから取ったディストリビューションの短い名前を返す事です。

  バージョン 2.6 で非推奨.

`platform.``linux_distribution`(distname='', version='', id='', supported_dists=('SuSE', 'debian', 'redhat', 'mandrake', ...), full_distribution_name=1)

  OSディストリビューション名の取得を試みます。

  `supported_dists` は、検索するLinuxディストリビューションを定義するために利用します。デフォルトでは、リリースファイル名で定義されている、現在サポートされているLinuxディストリビューションのリストです。

  `full_distribution_name` が `True` (デフォルト)の場合、OSから読み込まれた完全なディストリビューション名が返されます。それ以外の場合、`supported_dists` で利用された短い名前が返されます。

  戻り値はタプル `(distname, version, id)` で、不明な項目は引数で指定した値となります。`id` はバージョン番号に続く括弧内の要素です。これは通常バージョンコードネームです。

  注釈

  This function is deprecated since Python 3.5 and removed in Python 3.8. See alternative like the distro package.

  バージョン 2.6 で追加.

`platform.``libc_ver`(executable=sys.executable, lib='', version='', chunksize=2048)

  executableで指定したファイル（省略時はPythonインタープリタ）がリンクしているlibcバージョンの取得を試みます。戻り値は文字列のタプル `(lib, version)` で、不明な項目は引数で指定した値となります。

  この関数は、実行形式に追加されるシンボルの細かな違いによって、libcのバージョンを特定します。この違いは gcc でコンパイルされた実行可能ファイルでのみ有効だと思われます。

  chunksize にはファイルから情報を取得するために読み込むバイト数を指定します。