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

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

注釈

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

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

`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'`, `'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` の6つの属性を持った `namedtuple()` を返します。

  この関数が `os.uname()` の結果には含まれない 6番目の属性 (`processor`) を追加することに注意してください。さらに、最初の2つの属性については属性名が異なります; `os.uname()` はそれらを `sysname` と `nodename` と命名します。

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

  バージョン 3.3 で変更: 結果が tuple から namedtuple に変更されました。

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

## 16.14.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互換プラットフォームのみです。

### 16.14.3.1. Win95/98 固有

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

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

  バージョン 3.3 で非推奨: この関数は廃止予定です。 `subprocess` モジュールを使用してください。特に 古い関数を subprocess モジュールで置き換える セクションをチェックしてください。

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

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

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

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

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

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

  これは `linux_distribution()` の別名です。

  Deprecated since version 3.5, will be removed in version 3.8: distro パッケージなどの他の選択肢を調べてください。

`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` はバージョン番号に続く括弧内の要素です。これは通常バージョンコードネームです。

  Deprecated since version 3.5, will be removed in version 3.8: distro パッケージなどの他の選択肢を調べてください。

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

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

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

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