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

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

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

バージョン3.2の新機能。


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



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

構成変数

Pythonディストリビューションには、Makefilepyconfig.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++']

インストールパス

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

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

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

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

各スキーム自体は一連のパスで構成され、各パスには一意の識別子があります。 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 が見つからない場合は、 KeyError を発生させます。

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

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

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

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

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

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


その他の機能

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

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

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

戻り値の例:

  • linux-i586

  • linux-alpha(?)

  • ソラリス-2.6-sun4u

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

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

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

macOSは以下を返すことができます:

  • 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を返します。 make installを実行するか、バイナリインストーラーを介してインストールします。
sysconfig.parse_config_h(fp[, vars])

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

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

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

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


sysconfig をスクリプトとして使用する

sysconfig は、Pythonの -m オプションを使用してスクリプトとして使用できます。

$ python -m sysconfig
Platform: "macosx-10.4-i386"
Python version: "3.2"
Current installation scheme: "posix_prefix"

Paths:
        data = "/usr/local"
        include = "/Users/tarek/Dev/svn.python.org/py3k/Include"
        platinclude = "."
        platlib = "/usr/local/lib/python3.2/site-packages"
        platstdlib = "/usr/local/lib/python3.2"
        purelib = "/usr/local/lib/python3.2/site-packages"
        scripts = "/usr/local/bin"
        stdlib = "/usr/local/lib/python3.2"

Variables:
        AC_APPLE_UNIVERSAL_BUILD = "0"
        AIX_GENUINE_CPLUSPLUS = "0"
        AR = "ar"
        ARFLAGS = "rc"
        ...

この呼び出しは、 get_platform()get_python_version()get_path()、および get_config_vars()によって返される情報を標準出力に出力します。 ]。