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* にはファイルから情報を取得するために読み込むバイト数を
   指定します。
