28.2. sysconfig — Pythonの構成情報へのアクセスを提供します—Pythonドキュメント

提供:Dev Guides
< PythonPython/docs/2.7/library/sysconfig
移動先:案内検索

28.2。 sysconfig —Pythonの構成情報へのアクセスを提供します

バージョン2.7の新機能。


ソースコード: :source: `Lib / sysconfig.py`



sysconfig モジュールは、インストールパスのリストや現在のプラットフォームに関連する構成変数などのPythonの構成情報へのアクセスを提供します。

28.2.1。 構成変数

Pythonディストリビューションには、Makefileヘッダーファイルとpyconfig.hヘッダーファイルが含まれています。これらは、Pythonバイナリ自体と distutils を使用してコンパイルされたサードパーティのC拡張機能の両方をビルドするために必要です。

sysconfig は、これらのファイルで見つかったすべての変数を、 get_config_vars()または get_config_var()を使用してアクセスできる辞書に配置します。

Windowsでは、はるかに小さいセットであることに注意してください。

sysconfig.get_config_vars(\*args)

引数なしで、現在のプラットフォームに関連するすべての構成変数の辞書を返します。

引数を使用して、構成変数ディクショナリで各引数を検索した結果の値のリストを返します。

引数ごとに、値が見つからない場合は、Noneを返します。

sysconfig.get_config_var(name)

単一の変数 name の値を返します。 get_config_vars().get(name)と同等です。

name が見つからない場合は、Noneを返します。

使用例:

>>> import sysconfig
>>> sysconfig.get_config_var('Py_ENABLE_SHARED')
0
>>> sysconfig.get_config_var('LIBDIR')
'/usr/local/lib'
>>> sysconfig.get_config_vars('AR', 'CXX')
['ar', 'g++']

28.2.2。 インストールパス

Pythonは、プラットフォームとインストールオプションによって異なるインストールスキームを使用します。 これらのスキームは、 os.name によって返される値に基づく一意の識別子の下で sysconfig に保存されます。

distutils またはDistutilsベースのシステムを使用してインストールされたすべての新しいコンポーネントは、同じスキームに従ってファイルを適切な場所にコピーします。

Pythonは現在、次の7つのスキームをサポートしています。

  • posix_prefix :LinuxやMac OSXなどのPosixプラットフォーム用のスキーム。 これは、Pythonまたはコンポーネントがインストールされるときに使用されるデフォルトのスキームです。
  • posix_home :インストール時に home オプションが使用される場合に使用されるPosixプラットフォームのスキーム。 このスキームは、コンポーネントが特定のホームプレフィックスを使用してDistutilsを介してインストールされる場合に使用されます。
  • posix_user :コンポーネントがDistutilsを介してインストールされ、 user オプションが使用される場合に使用されるPosixプラットフォームのスキーム。 このスキームは、ユーザーのホームディレクトリの下にあるパスを定義します。
  • nt :WindowsなどのNTプラットフォーム用のスキーム。
  • nt_useruser オプションが使用されている場合のNTプラットフォームのスキーム。
  • os2 :OS / 2プラットフォーム用のスキーム。
  • os2_homeuser オプションが使用されている場合のOS / 2プラットフォームのスキーム。

各スキーム自体は一連のパスで構成され、各パスには一意の識別子があります。 Pythonは現在、次の8つのパスを使用しています。

  • stdlib :プラットフォーム固有ではない標準のPythonライブラリファイルを含むディレクトリ。
  • platstdlib :プラットフォーム固有の標準Pythonライブラリファイルを含むディレクトリ。
  • platlib :サイト固有、プラットフォーム固有のファイルのディレクトリ。
  • purelib :サイト固有、非プラットフォーム固有のファイルのディレクトリ。
  • include :プラットフォーム固有ではないヘッダーファイルのディレクトリ。
  • platinclude :プラットフォーム固有のヘッダーファイルのディレクトリ。
  • scripts :スクリプトファイルのディレクトリ。
  • data :データファイルのディレクトリ。

sysconfig は、これらのパスを決定するためのいくつかの関数を提供します。

sysconfig.get_scheme_names()
sysconfig で現在サポートされているすべてのスキームを含むタプルを返します。
sysconfig.get_path_names()
sysconfig で現在サポートされているすべてのパス名を含むタプルを返します。
sysconfig.get_path(name[, scheme[, vars[, expand]]])

schema という名前のインストールスキームから、パス name に対応するインストールパスを返します。

name は、 get_path_names()によって返されるリストの値である必要があります。

sysconfig は、プラットフォームごとに、展開する変数とともに、各パス名に対応するインストールパスを格納します。 たとえば、 nt スキームの stdlib パスは{base}/Libです。

get_path()は、 get_config_vars()によって返された変数を使用してパスを展開します。 すべての変数にはプラットフォームごとにデフォルト値があるため、この関数を呼び出してデフォルト値を取得できます。

schema が指定されている場合は、 get_scheme_names()によって返されるリストの値である必要があります。 それ以外の場合は、現在のプラットフォームのデフォルトスキームが使用されます。

vars が提供されている場合、 get_config_vars()によって返されるディクショナリを更新する変数のディクショナリである必要があります。

expandFalseに設定されている場合、パスは変数を使用して展開されません。

name が見つからない場合は、Noneを返します。

sysconfig.get_paths([scheme[, vars[, expand]]])

インストールスキームに対応するすべてのインストールパスを含むディクショナリを返します。 詳細については、 get_path()を参照してください。

スキームが提供されていない場合、現在のプラットフォームのデフォルトスキームを使用します。

vars が提供されている場合、パスの拡張に使用されるディクショナリを更新する変数のディクショナリである必要があります。

expand がfalseに設定されている場合、パスは展開されません。

スキームが既存のスキームでない場合、 get_paths()KeyErrorを発生させます。


28.2.3。 その他の機能

sysconfig.get_python_version()
MAJOR.MINOR Pythonのバージョン番号を文字列として返します。 sys.version[:3]に似ています。
sysconfig.get_platform()

現在のプラットフォームを識別する文字列を返します。

これは主に、プラットフォーム固有のビルドディレクトリとプラットフォーム固有のビルドされたディストリビューションを区別するために使用されます。 含まれる正確な情報はOSによって異なりますが、通常はOSの名前とバージョンおよびアーキテクチャ( os.uname()によって提供される)が含まれます。 例えば IRIXの場合、アーキテクチャは特に重要ではありませんが(IRIXはSGIハードウェアでのみ実行されます)、Linuxの場合、カーネルバージョンは特に重要ではありません。

戻り値の例:

  • linux-i586

  • linux-alpha(?)

  • ソラリス-2.6-sun4u

  • irix-5.3

  • irix64-6.2

Windowsは次のいずれかを返します。

  • win-amd64(AMD64上の64ビットWindows、別名x86_64、Intel64、およびEM64T)

  • win-ia64(Itanium上の64ビットWindows)

  • win32(その他すべて-具体的には、sys.platformが返されます)

Mac OSXは以下を返すことができます。

  • macosx-10.6-ppc

  • macosx-10.4-ppc64

  • macosx-10.3-i386

  • macosx-10.4-fat

他の非POSIXプラットフォームの場合、現在は sys.platform を返すだけです。

sysconfig.is_python_build()
現在のPythonインストールがソースからビルドされた場合は、Trueを返します。
sysconfig.parse_config_h(fp[, vars])

config.hスタイルのファイルを解析します。

fp は、config.hのようなファイルを指すファイルのようなオブジェクトです。

名前と値のペアを含む辞書が返されます。 オプションのディクショナリが2番目の引数として渡された場合、新しいディクショナリの代わりに使用され、ファイルで読み取られた値で更新されます。

sysconfig.get_config_h_filename()
pyconfig.hのパスを返します。
sysconfig.get_makefile_filename()
Makefileのパスを返します。