9. APIリファレンス—Pythonドキュメント

提供:Dev Guides
< PythonPython/docs/3.8/distutils/apiref
移動先:案内検索

9.9。 APIリファレンス

も参照してください

setuptoolsの新規および変更されたsetup.py引数
setuptoolsプロジェクトは、setup関数およびその他のAPIに新しい機能を追加し、異なるPythonバージョン間でAPIの一貫性を保つため、distutilsを直接使用するよりも推奨されます。


ノート

このドキュメントは、 https://setuptools.readthedocs.io/en/latest/setuptools.htmlのsetuptoolsドキュメントが、現在ここに含まれているすべての関連情報を個別にカバーするまでのみ保持されます。


9.1。 distutils.core —コアDistutils機能

distutils.core モジュールは、Distutilsを使用するためにインストールする必要がある唯一のモジュールです。 setup()(セットアップスクリプトから呼び出されます)を提供します。 distutils.dist.Distributionおよび distutils.cmd.Command クラスを間接的に提供します。

distutils.core.setup(arguments)

Distutilsメソッドから要求される可能性のあるほとんどすべてを実行する基本的なすべてを実行する関数。

セットアップ関数は多数の引数を取ります。 これらを次の表に示します。

引数名

価値

タイプ

名前

パッケージの名前

文字列

バージョン

パッケージのバージョン番号。 distutils.version を参照してください

文字列

説明

パッケージを説明する1行

文字列

長い説明

パッケージのより長い説明

文字列

著者

パッケージ作成者の名前

文字列

author_email

パッケージ作成者のメールアドレス

文字列

メンテナ

著者と異なる場合は、現在のメンテナの名前。 メンテナが提供されている場合、distutilsはそれをPKG-INFOの作成者として使用することに注意してください。

文字列

maintainer_email

著者と異なる場合は、現在のメンテナのメールアドレス

文字列

URL

パッケージのURL(ホームページ)

文字列

download_url

パッケージをダウンロードするためのURL

文字列

パッケージ

distutilsが操作するPythonパッケージのリスト

文字列のリスト

py_modules

distutilsが操作するPythonモジュールのリスト

文字列のリスト

スクリプト

ビルドおよびインストールするスタンドアロンスクリプトファイルのリスト

文字列のリスト

ext_modules

構築するPython拡張機能のリスト

distutils.core.Extension のインスタンスのリスト

分類子

パッケージのカテゴリのリスト

文字列のリスト。 有効な分類子は PyPI にリストされています。

distclass

使用する Distribution クラス

distutils.core.Distribution のサブクラス

script_name

setup.pyスクリプトの名前-デフォルトはsys.argv[0]です

文字列

script_args

セットアップスクリプトに提供する引数

文字列のリスト

オプション

セットアップスクリプトのデフォルトオプション

辞書

ライセンス

パッケージのライセンス

文字列

キーワード

記述的なメタデータ。 PEP314 を参照してください。

文字列のリストまたはコンマ区切りの文字列

プラットフォーム

文字列のリストまたはコンマ区切りの文字列

cmdclass

コマンド名のコマンドサブクラスへのマッピング

辞書

データファイル

インストールするデータファイルのリスト

リスト

package_dir

パッケージからディレクトリ名へのマッピング

辞書

distutils.core.run_setup(script_name[, script_args=None, stop_after='run'])

ある程度制御された環境でセットアップスクリプトを実行し、物事を駆動するdistutils.dist.Distributionインスタンスを返します。 これは、配布メタデータ( script から setup()にキーワード引数として渡される)、または構成ファイルまたはコマンドラインの内容を見つける必要がある場合に役立ちます。 。

script_name は、 exec()で読み取られて実行されるファイルです。 通話中、sys.argv[0]script に置き換えられます。 script_args は文字列のリストです。 指定されている場合、sys.argv[1:]は、通話中に script_args に置き換えられます。

stop_after は、 setup()にいつ処理を停止するかを指示します。 可能な値:

価値

説明

初期化

Distribution インスタンスが作成され、 setup()へのキーワード引数が入力されたら停止します。

設定

構成ファイルが解析された後(およびそれらのデータが Distribution インスタンスに格納された後)停止します

コマンドライン

コマンドライン(sys.argv[1:]または script_args )が解析された(および Distribution インスタンスに格納されたデータ)後に停止します。

走る

すべてのコマンドが実行されたら停止します( setup()が通常の方法で呼び出された場合と同じです)。 これがデフォルト値です。

さらに、 distutils.core モジュールは、他の場所に存在する多数のクラスを公開しました。

これらのそれぞれの簡単な説明は次のとおりですが、完全なリファレンスについては関連するモジュールを参照してください。

class distutils.core.Extension

Extensionクラスは、セットアップスクリプト内の単一のCまたはC ++拡張モジュールを記述します。 コンストラクターで次のキーワード引数を受け入れます。

引数名

価値

タイプ

名前

パッケージを含む拡張機能のフルネーム—つまり。 ファイル名またはパス名ではなく、Pythonドット名

文字列

ソース

移植性のために、Unix形式(スラッシュ区切り)の配布ルート(セットアップスクリプトが存在する場所)に関連するソースファイル名のリスト。 ソースファイルは、C、C ++、SWIG(.i)、プラットフォーム固有のリソースファイル、またはPython拡張機能のソースとして build_ext コマンドによって認識されるその他のものです。

文字列のリスト

include_dirs

C / C ++ヘッダーファイルを検索するディレクトリのリスト(移植性のためにUnix形式)

文字列のリスト

define_macros

定義するマクロのリスト。 各マクロは、2タプル(name, value)を使用して定義されます。ここで、 value は、マクロを定義する文字列、またはNoneは、特定の値なしで定義します([ソースのX201X] またはUnixCコンパイラコマンドラインの-DFOO

タプルのリスト

undef_macros

明示的に定義を解除するマクロのリスト

文字列のリスト

library_dirs

リンク時にC / C ++ライブラリを検索するディレクトリのリスト

文字列のリスト

ライブラリ

リンクするライブラリ名(ファイル名やパスではない)のリスト

文字列のリスト

runtime_library_dirs

実行時にC / C ++ライブラリを検索するディレクトリのリスト(共有拡張機能の場合、これは拡張機能がロードされるときです)

文字列のリスト

extra_objects

リンクする追加ファイルのリスト(例: 'sources'によって暗示されていないオブジェクトファイル、明示的に指定する必要のある静的ライブラリ、バイナリリソースファイルなど)

文字列のリスト

extra_compile_args

'sources'内のソースファイルをコンパイルするときに使用する、プラットフォーム固有およびコンパイラ固有の追加情報。 コマンドラインが意味をなすプラットフォームとコンパイラの場合、これは通常、コマンドライン引数のリストですが、他のプラットフォームの場合は何でもかまいません。

文字列のリスト

extra_link_args

オブジェクトファイルをリンクして拡張機能を作成する(または新しい静的Pythonインタープリターを作成する)ときに使用する、プラットフォーム固有およびコンパイラ固有の追加情報。 'extra_compile_args'と同様の解釈。

文字列のリスト

export_symbols

共有拡張機能からエクスポートされるシンボルのリスト。 すべてのプラットフォームで使用されるわけではなく、通常はPython拡張機能には必要ありません。Python拡張機能は通常、init + extension_nameの1つのシンボルのみをエクスポートします。

文字列のリスト

依存します

拡張子が依存するファイルのリスト

文字列のリスト

言語

拡張言語(つまり 'c''c++''objc')。 指定されていない場合、ソース拡張機能から検出されます。

文字列

オプション

拡張機能でのビルドの失敗がビルドプロセスを中止してはならず、単に拡張機能をスキップすることを指定します。

ブール値

バージョン3.8で変更: Unixでは、AndroidとCygwinを除いて、C拡張機能はlibpythonにリンクされなくなりました。

class distutils.core.Distribution

Distribution は、Pythonソフトウェアパッケージをビルド、インストール、およびパッケージ化する方法を説明しています。

Distributionコンストラクターが受け入れるキーワード引数のリストについては、 setup()関数を参照してください。 setup()はDistributionインスタンスを作成します。

バージョン3.7で変更: Distribution は、classifierskeywords、およびplatformsフィールドがリストまたはストリング。

class distutils.core.Command
Command クラス(または、そのサブクラスの1つのインスタンス)は、単一のdistutilsコマンドを実装します。


9.2。 distutils.ccompiler —cCompiler基本クラス

このモジュールは、 CCompiler クラスの抽象基本クラスを提供します。 CCompiler インスタンスは、単一のプロジェクトを構築するために必要なすべてのコンパイルおよびリンク手順に使用できます。 コンパイラのオプション(マクロ定義、インクルードディレクトリ、リンクパス、ライブラリなど)を設定するためのメソッドが提供されています。

このモジュールは、次の機能を提供します。

distutils.ccompiler.gen_lib_options(compiler, library_dirs, runtime_library_dirs, libraries)
ライブラリディレクトリを検索し、特定のライブラリとリンクするためのリンカーオプションを生成します。 librarieslibrary_dirs は、それぞれ、ライブラリ名(ファイル名ではありません!)と検索ディレクトリのリストです。 一部のコンパイラでの使用に適したコマンドラインオプションのリストを返します(渡された2つのフォーマット文字列によって異なります)。
distutils.ccompiler.gen_preprocess_options(macros, include_dirs)
少なくとも2種類のコンパイラ(通常のUnixコンパイラとVisual C ++)で使用されるCプリプロセッサオプション(-D-U-I)を生成します。 macros は通常のもので、1タプルまたは2タプルのリストです。ここで、(name,)は未定義(-U)マクロ name 、および[ X130X] は、(-D)マクロ名前に定義することを意味します。 include_dirs は、ヘッダーファイルの検索パス(-I)に追加されるディレクトリ名のリストです。 UnixコンパイラまたはVisualC ++のいずれかに適したコマンドラインオプションのリストを返します。
distutils.ccompiler.get_default_compiler(osname, platform)

特定のプラットフォームで使用するデフォルトのコンパイラを決定します。

osname は、標準のPython OS名の1つである必要があります(つまり、 os.name)および platform によって返されるものは、問題のプラットフォームに対してsys.platformによって返される共通の値です。

パラメータが指定されていない場合、デフォルト値はos.nameおよびsys.platformです。

distutils.ccompiler.new_compiler(plat=None, compiler=None, verbose=0, dry_run=0, force=0)
提供されたプラットフォーム/コンパイラの組み合わせに対してCCompilerサブクラスのインスタンスを生成するファクトリ関数。 plat のデフォルトはos.nameです(例: 'posix''nt')、およびコンパイラは、デフォルトでそのプラットフォームのデフォルトコンパイラになります。 現在、'posix''nt'のみがサポートされており、デフォルトのコンパイラは「従来のUnixインターフェイス」(UnixCCompilerクラス)とVisual C ++(MSVCCompilerクラス)です。 WindowsではUnixコンパイラオブジェクトを要求し、UnixではMicrosoftコンパイラオブジェクトを要求することは完全に可能であることに注意してください。コンパイラに値を指定すると、 plat は無視されます。
distutils.ccompiler.show_compilers()
使用可能なコンパイラのリストを出力します( buildbuild_extbuild_clib--help-compilerオプションで使用されます)。
class distutils.ccompiler.CCompiler([verbose=0, dry_run=0, force=0])

抽象基本クラス CCompiler は、実際のコンパイラクラスで実装する必要のあるインターフェイスを定義します。 このクラスには、いくつかのコンパイラクラスで使用されるユーティリティメソッドもいくつかあります。

コンパイラ抽象化クラスの背後にある基本的な考え方は、各インスタンスを単一のプロジェクトを構築する際のすべてのコンパイル/リンクステップに使用できるということです。 したがって、これらすべてのコンパイルおよびリンク手順に共通する属性には、ディレクトリ、定義するマクロ、リンクするライブラリなどが含まれます。 —コンパイラインスタンスの属性です。 個々のファイルの処理方法を変更できるようにするために、これらの属性のほとんどは、コンパイルごとまたはリンクごとに変更できます。

各サブクラスのコンストラクターは、Compilerオブジェクトのインスタンスを作成します。 フラグは、 verbose (詳細出力を表示)、 dry_run (実際にはステップを実行しない)、および force (依存関係に関係なくすべてを再構築)です。 これらのフラグはすべて、デフォルトで0(オフ)になっています。 CCompiler またはそのサブクラスの1つを直接インスタンス化したくない場合があることに注意してください。代わりに、distutils.CCompiler.new_compiler()ファクトリ関数を使用してください。

次のメソッドを使用すると、Compilerクラスのインスタンスのコンパイラオプションを手動で変更できます。

add_include_dir(dir)

ヘッダーファイルを検索するディレクトリのリストに dir を追加します。 コンパイラーは、 add_include_dir()への連続した呼び出しによって提供された順序でディレクトリーを検索するように指示されます。

set_include_dirs(dirs)

検索するディレクトリのリストを dirs (文字列のリスト)に設定します。 add_include_dir()への先行する呼び出しをオーバーライドします。 その後の add_include_dir()の呼び出しは、 set_include_dirs()に渡されるリストに追加されます。 これは、コンパイラがデフォルトで検索する可能性のある標準のインクルードディレクトリのリストには影響しません。

add_library(libname)

このコンパイラオブジェクトによって駆動されるすべてのリンクに含まれるライブラリのリストに libname を追加します。 libname は、ライブラリを含むファイルの名前ではなく、ライブラリ自体の名前である必要があることに注意してください。実際のファイル名は、リンカー、コンパイラ、またはコンパイラクラス(プラットフォーム上)。

リンカは、 add_library()および/または set_libraries()に提供された順序でライブラリに対してリンクするように指示されます。 ライブラリ名を複製することは完全に有効です。 リンカは、言及されている回数だけライブラリに対してリンクするように指示されます。

set_libraries(libnames)

このコンパイラオブジェクトによって駆動されるすべてのリンクに含まれるライブラリのリストを libnames (文字列のリスト)に設定します。 これは、リンカがデフォルトで含めることができる標準のシステムライブラリには影響しません。

add_library_dir(dir)

dir を、 add_library()および set_libraries()に指定されたライブラリを検索するディレクトリのリストに追加します。 リンカは、 add_library_dir()および/または set_library_dirs()に提供された順序でライブラリを検索するように指示されます。

set_library_dirs(dirs)

ライブラリ検索ディレクトリのリストを dirs (文字列のリスト)に設定します。 これは、リンカがデフォルトで検索する可能性のある標準ライブラリ検索パスには影響しません。

add_runtime_library_dir(dir)

実行時に共有ライブラリを検索するディレクトリのリストに dir を追加します。

set_runtime_library_dirs(dirs)

実行時に共有ライブラリを検索するディレクトリのリストを dirs (文字列のリスト)に設定します。 これは、ランタイムリンカがデフォルトで検索する可能性のある標準の検索パスには影響しません。

define_macro(name[, value=None])

このコンパイラオブジェクトによって駆動されるすべてのコンパイルに対してプリプロセッサマクロを定義します。 オプションのパラメータ value は文字列である必要があります。 提供されていない場合、マクロは明示的な値なしで定義され、正確な結果は使用されるコンパイラーによって異なります。

undefine_macro(name)

このコンパイラオブジェクトによって駆動されるすべてのコンパイルのプリプロセッサマクロを定義解除します。 同じマクロが define_macro()によって定義され、 undefine_macro()によって定義されていない場合、最後の呼び出しが優先されます(複数の再定義または未定義を含む)。 マクロがコンパイルごとに再定義/未定義の場合(つまり、 compile())の呼び出しでは、それが優先されます。

add_link_object(object)

object をオブジェクトファイル(または明示的に名前が付けられたライブラリファイルや「リソースコンパイラ」の出力などの類似物)のリストに追加して、このコンパイラオブジェクトによって駆動されるすべてのリンクに含めます。

set_link_objects(objects)

オブジェクトへのすべてのリンクに含まれるオブジェクトファイル(または類似物)のリストを設定します。 これは、リンカがデフォルトで含める可能性のある標準オブジェクトファイル(システムライブラリなど)には影響しません。

以下のメソッドは、コンパイラオプションの自動検出のメソッドを実装し、GNU autoconf と同様の機能を提供します。

detect_language(sources)

特定のファイルの言語、またはファイルのリストを検出します。 インスタンス属性language_map(辞書)とlanguage_order(リスト)を使用してジョブを実行します。

find_library_file(dirs, lib[, debug=0])

指定されたディレクトリのリストで静的または共有ライブラリファイル lib を検索し、そのファイルへのフルパスを返します。 debug がtrueの場合、デバッグバージョンを探します(現在のプラットフォームでそれが理にかなっている場合)。 指定されたディレクトリのいずれにも lib が見つからなかった場合は、Noneを返します。

has_function(funcname[, includes=None, include_dirs=None, libraries=None, library_dirs=None])

funcname が現在のプラットフォームでサポートされているかどうかを示すブール値を返します。 オプションの引数を使用して、追加のインクルードファイルとパス、およびライブラリとパスを提供することにより、コンパイル環境を拡張できます。

library_dir_option(dir)

ライブラリを検索するディレクトリのリストに dir を追加するコンパイラオプションを返します。

library_option(lib)

共有ライブラリまたは実行可能ファイルにリンクされているライブラリのリストに lib を追加するコンパイラオプションを返します。

runtime_library_dir_option(dir)

コンパイラオプションを返し、ランタイムライブラリを検索するディレクトリのリストに dir を追加します。

set_executables(**args)

コンパイルのさまざまな段階を実行するために実行される実行可能ファイル(およびそれらのオプション)を定義します。 ここで指定できる実行可能ファイルの正確なセットは、コンパイラクラス(「executables」クラス属性を介して)によって異なりますが、ほとんどの場合、次のようになります。

属性

説明

コンパイラ

C / C ++コンパイラ

リンカー_so

共有オブジェクトとライブラリの作成に使用されるリンカー

リンカー_exe

バイナリ実行可能ファイルの作成に使用されるリンカー

アーカイバ

静的ライブラリクリエーター

コマンドライン(Unix、DOS / Windows)を備えたプラットフォームでは、これらはそれぞれ、実行可能ファイル名と(オプションの)引数のリストに分割される文字列です。 (文字列の分割は、Unixシェルの動作と同様に行われます。単語はスペースで区切られますが、引用符と円記号でこれを上書きできます。 distutils.util.split_quoted()を参照してください。)

次のメソッドは、ビルドプロセスのステージを呼び出します。

compile(sources[, output_dir=None, macros=None, include_dirs=None, debug=0, extra_preargs=None, extra_postargs=None, depends=None])

1つ以上のソースファイルをコンパイルします。 オブジェクトファイルを生成します(例: .cファイルを.oファイルに変換します。)

ソースは、ファイル名のリストである必要があります。ほとんどの場合、C / C ++ファイルですが、実際には、特定のコンパイラおよびコンパイラクラスで処理できるもの(例: MSVCCompilerは、ソース内のリソースファイルを処理できます。 ソースのソースファイル名ごとに1つずつ、オブジェクトファイル名のリストを返します。 実装によっては、必ずしもすべてのソースファイルがコンパイルされるわけではありませんが、対応するすべてのオブジェクトファイル名が返されます。

output_dir を指定すると、元のパスコンポーネントを保持したまま、オブジェクトファイルがその下に配置されます。 つまり、foo/bar.cは通常foo/bar.oにコンパイルされます(Unix実装の場合)。 output_dirbuild の場合、build/foo/bar.oにコンパイルされます。

macros は、指定されている場合、マクロ定義のリストである必要があります。 マクロ定義は、(name, value) 2タプルまたは(name,) 1タプルのいずれかです。 前者はマクロを定義します。 値がNoneの場合、マクロは明示的な値なしで定義されます。 1タプルの場合は、マクロの定義を解除します。 後の定義/再定義/未定義が優先されます。

include_dirs は、指定されている場合、文字列のリストである必要があります。デフォルトのインクルードファイル検索パスに追加するディレクトリは、このコンパイルのみです。

debug はブール値です。 trueの場合、コンパイラは、オブジェクトファイル内(またはオブジェクトファイルと一緒に)にデバッグシンボルを出力するように指示されます。

extra_preargs および extra_postargs は実装に依存します。 コマンドラインの概念があるプラットフォーム(例: Unix、DOS / Windows)、それらは文字列のリストである可能性が最も高いです:コンパイラコマンドラインの前に/追加するための追加のコマンドライン引数。 他のプラットフォームでは、実装クラスのドキュメントを参照してください。 いずれにせよ、それらは抽象コンパイラフレームワークがマスタードをカットしない場合のエスケープハッチとして意図されています。

depends は、指定されている場合、すべてのターゲットが依存するファイル名のリストです。 ソースファイルがdependsのどのファイルよりも古い場合、ソースファイルは再コンパイルされます。 これは依存関係の追跡をサポートしますが、粒度は粗くなります。

失敗するとCompileErrorを発生させます。

create_static_lib(objects, output_libname[, output_dir=None, debug=0, target_lang=None])

たくさんのものをリンクして、静的ライブラリファイルを作成します。 「ものの束」は、オブジェクトとして提供されるオブジェクトファイルのリスト、 add_link_object()および/または set_link_objects()に提供される追加のオブジェクトファイルで構成されます。 、 add_library()および/または set_libraries()に提供されるライブラリ、および libraries として提供されるライブラリ(存在する場合)。

output_libname は、ファイル名ではなくライブラリ名である必要があります。 ファイル名はライブラリ名から推測されます。 output_dir は、ライブラリファイルが配置されるディレクトリです。

debug はブール値です。 trueの場合、デバッグ情報がライブラリに含まれます(ほとんどのプラットフォームでは、これが重要なのはコンパイルステップであることに注意してください。一貫性を保つために debug フラグがここに含まれています)。

target_lang は、指定されたオブジェクトがコンパイルされるターゲット言語です。 これにより、特定の言語の特定のリンケージ時間処理が可能になります。

失敗するとLibErrorを発生させます。

link(target_desc, objects, output_filename[, output_dir=None, libraries=None, library_dirs=None, runtime_library_dirs=None, export_symbols=None, debug=0, extra_preargs=None, extra_postargs=None, build_temp=None, target_lang=None])

たくさんのものをリンクして、実行可能ファイルまたは共有ライブラリファイルを作成します。

「ものの束」は、オブジェクトとして提供されるオブジェクトファイルのリストで構成されます。 output_filename はファイル名である必要があります。 output_dir が指定されている場合、 output_filename はそれに関連しています(つまり、 output_filename は、必要に応じてディレクトリコンポーネントを提供できます)。

libraries は、リンクするライブラリのリストです。 これらはライブラリ名であり、ファイル名ではありません。プラットフォーム固有の方法でファイル名に変換されるためです(例: foo は、Unixではlibfoo.aになり、DOS / Windowsではfoo.libになります。 ただし、ディレクトリコンポーネントを含めることができます。つまり、リンカは通常の場所をすべて検索するのではなく、その特定のディレクトリを検索します。

library_dirs が指定されている場合は、ベアライブラリ名として指定されたライブラリを検索するためのディレクトリのリストである必要があります(つまり、 ディレクトリコンポーネントなし)。 これらは、システムのデフォルトと add_library_dir()および/または set_library_dirs()に提供されるものの上にあります。 runtime_library_dirs は、共有ライブラリに埋め込まれ、実行時に依存する他の共有ライブラリを検索するために使用されるディレクトリのリストです。 (これはUnixにのみ関連する可能性があります。)

export_symbols は、共有ライブラリがエクスポートするシンボルのリストです。 (これはWindowsにのみ関連しているようです。)

debugcompile()および create_static_lib()と同じですが、ほとんどのプラットフォームで実際に重要であるというわずかな違いがあります( create_static_lib( )、これには主にフォームのための debug フラグが含まれます)。

extra_preargs および extra_postargs は、 compile()と同じです(もちろん、使用されている特定のリンカーのコマンドライン引数を提供する場合を除きます)。

target_lang は、指定されたオブジェクトがコンパイルされるターゲット言語です。 これにより、特定の言語の特定のリンケージ時間処理が可能になります。

失敗するとLinkErrorを発生させます。

link_executable(objects, output_progname[, output_dir=None, libraries=None, library_dirs=None, runtime_library_dirs=None, debug=0, extra_preargs=None, extra_postargs=None, target_lang=None])

実行可能ファイルをリンクします。 output_progname は実行可能ファイルの名前であり、 objects はリンクするオブジェクトファイル名のリストです。 その他の引数は、 link()メソッドと同じです。

link_shared_lib(objects, output_libname[, output_dir=None, libraries=None, library_dirs=None, runtime_library_dirs=None, export_symbols=None, debug=0, extra_preargs=None, extra_postargs=None, build_temp=None, target_lang=None])

共有ライブラリをリンクします。 output_libname は出力ライブラリの名前であり、 objects はリンクするオブジェクトファイル名のリストです。 その他の引数は、 link()メソッドと同じです。

link_shared_object(objects, output_filename[, output_dir=None, libraries=None, library_dirs=None, runtime_library_dirs=None, export_symbols=None, debug=0, extra_preargs=None, extra_postargs=None, build_temp=None, target_lang=None])

共有オブジェクトをリンクします。 output_filename は作成される共有オブジェクトの名前であり、 objects はリンクするオブジェクトファイル名のリストです。 その他の引数は、 link()メソッドと同じです。

preprocess(source[, output_file=None, macros=None, include_dirs=None, extra_preargs=None, extra_postargs=None])

source で指定された単一のC / C ++ソースファイルを前処理します。 出力は、 output_file という名前のファイル、または output_file が指定されていない場合は stdout という名前のファイルに書き込まれます。 macros は、 compile()に関するマクロ定義のリストであり、 define_macro()および undefine_macro()で設定されたマクロを拡張します。 ]。 include_dirs は、 add_include_dir()と同じ方法で、デフォルトのリストに追加されるディレクトリ名のリストです。

失敗するとPreprocessErrorを発生させます。

次のユーティリティメソッドは、さまざまな具象サブクラスで使用するために、 CCompiler クラスによって定義されています。

executable_filename(basename[, strip_dir=0, output_dir=])

指定された basename の実行可能ファイルのファイル名を返します。 通常、Windows以外のプラットフォームの場合、これはベース名と同じですが、Windowsでは.exeが追加されます。

library_filename(libname[, lib_type='static', strip_dir=0, output_dir=])

現在のプラットフォーム上の指定されたライブラリ名のファイル名を返します。 Unixでは、 lib_type'static'のライブラリは通常、liblibname.aの形式になりますが、 lib_type'dynamic'の形式になります。 liblibname.soの形式の。

object_filenames(source_filenames[, strip_dir=0, output_dir=])

指定されたソースファイルのオブジェクトファイルの名前を返します。 source_filenames はファイル名のリストである必要があります。

shared_object_filename(basename[, strip_dir=0, output_dir=])

指定されたファイル名 basename の共有オブジェクトファイルの名前を返します。

execute(func, args[, msg=None, level=1])

distutils.util.execute()を呼び出します。 このメソッドは、ログに記録して dry_run フラグを考慮した後、指定された引数 args を使用してPython関数 func を呼び出します。

spawn(cmd)

distutils.util.spawn()を呼び出します。 これにより、外部プロセスが呼び出され、指定されたコマンドが実行されます。

mkpath(name[, mode=511])

distutils.dir_util.mkpath()を呼び出します。 これにより、ディレクトリと欠落している祖先ディレクトリが作成されます。

move_file(src, dst)

distutils.file_util.move_file()を呼び出します。 src の名前を dst に変更します。

announce(msg[, level=1])

distutils.log.debug()を使用してメッセージを書き込みます。

warn(msg)

警告メッセージ msg を標準エラーに書き込みます。

debug_print(msg)

この CCompiler インスタンスで debug フラグが設定されている場合は、 msg を標準出力に出力します。それ以外の場合は、何もしません。


9.3。 distutils.unixccompiler — UnixCコンパイラ

このモジュールは、UnixCCompilerクラスを提供します。これは、CCompilerのサブクラスであり、一般的なUnixスタイルのコマンドラインCコンパイラを処理します。

  • -Dname[=value]で定義されたマクロ
  • -Unameで未定義のマクロ
  • -Idirで指定された検索ディレクトリを含める
  • -llibで指定されたライブラリ
  • -Ldirで指定されたライブラリ検索ディレクトリ
  • -cオプションを指定して cc (または同様の)実行可能ファイルで処理されるコンパイル:.c.oにコンパイルします。
  • ar コマンドで処理されるリンク静的ライブラリ(おそらく ranlib を使用)
  • cc -sharedによって処理されるリンク共有ライブラリ


9.4。 distutils.msvccompiler —Microsoftコンパイラ

このモジュールは、Microsoft VisualStudio用の抽象CCompilerクラスの実装であるMSVCCompilerを提供します。 通常、拡張モジュールは、Pythonのコンパイルに使用されたものと同じコンパイラでコンパイルする必要があります。 Python 2.3以前の場合、コンパイラはVisual Studio6でした。 Python 2.4および2.5の場合、コンパイラはVisual Studio .NET2003です。

MSVCCompilerは通常、適切なコンパイラ、リンカーなどを選択します。 そのままで。 この選択を上書きするには、環境変数 DISTUTILS_USE_SDKMSSdk の両方を設定する必要があります。 MSSdk は、現在の環境がSDKのSetEnv.Cmdスクリプトによってセットアップされていること、またはSDKのインストール時に環境変数が登録されていることを示します。 DISTUTILS_USE_SDK は、distutilsユーザーがMSVCCompilerによるコンパイラー選択をオーバーライドする明示的な選択を行ったことを示します。


9.5。 distutils.bcppcompiler —Borlandコンパイラ

このモジュールは、Borland C ++コンパイラの抽象CCompilerクラスのサブクラスであるBorlandCCompilerを提供します。


9.6。 distutils.cygwincompiler—Cygwinコンパイラ

このモジュールは、CygwinCCompilerクラスを提供します。これは、UnixCCompilerのサブクラスであり、WindowsへのGNUCコンパイラのCygwinポートを処理します。 また、GCCのmingw32ポートを処理するMingw32CCompilerクラスも含まれています(非cygwinモードのcygwinと同じ)。


9.7。 distutils.archive_util —アーカイブユーティリティ

このモジュールは、tarballやzipfilesなどのアーカイブファイルを作成するためのいくつかの関数を提供します。

distutils.archive_util.make_archive(base_name, format[, root_dir=None, base_dir=None, verbose=0, dry_run=0])

アーカイブファイルを作成します(例: zipまたはtar)。 base_name は、作成するファイルの名前から、形式固有の拡張子を除いたものです。 format はアーカイブフォーマットです:ziptargztarbztarxztar、またはztarroot_dir は、アーカイブのルートディレクトリとなるディレクトリです。 NS。 通常、アーカイブを作成する前に、chdirroot_dir に挿入します。 base_dir は、アーカイブを開始するディレクトリです。 NS。 base_dir は、アーカイブ内のすべてのファイルとディレクトリに共通のプレフィックスになります。 root_dirbase_dir はどちらも、デフォルトで現在のディレクトリになります。 アーカイブファイルの名前を返します。

バージョン3.5で変更: xztar形式のサポートが追加されました。

distutils.archive_util.make_tarball(base_name, base_dir[, compress='gzip', verbose=0, dry_run=0])

' base_dir 内およびその下のすべてのファイルから、(オプションの圧縮された)アーカイブをtarファイルとして作成します。 compress は、'gzip'(デフォルト)、'bzip2''xz''compress'、またはNoneである必要があります。 'compress'メソッドの場合、 compress で指定された圧縮ユーティリティは、デフォルトのプログラム検索パス上にある必要があるため、これはおそらくUnix固有です。 出力tarファイルの名前はbase_dir.tarで、適切な圧縮拡張子(.gz.bz2.xzまたは.Z)が追加される場合があります。 出力ファイル名を返します。

バージョン3.5で変更: xz圧縮のサポートが追加されました。

distutils.archive_util.make_zipfile(base_name, base_dir[, verbose=0, dry_run=0])
base_dir 内およびその下のすべてのファイルからzipファイルを作成します。 出力zipファイルの名前は base_name + .zipになります。 zipfile Pythonモジュール(使用可能な場合)またはInfoZIP zipユーティリティ(インストールされ、デフォルトの検索パスにある場合)のいずれかを使用します。 どちらのツールも使用できない場合は、DistutilsExecErrorを上げます。 出力zipファイルの名前を返します。


9.8。 distutils.dep_util —依存関係のチェック

このモジュールは、ファイルおよびファイルのグループの単純なタイムスタンプベースの依存関係を実行するための関数を提供します。 また、そのようなタイムスタンプ依存関係分析に完全に基づく機能。

distutils.dep_util.newer(source, target)
source が存在し、 target よりも最近変更された場合、または source が存在し、 target が存在しない場合はtrueを返します。 両方が存在し、ターゲットソースと同じか新しい場合はfalseを返します。 ソースが存在しない場合は、DistutilsFileErrorを上げます。
distutils.dep_util.newer_pairwise(sources, targets)
2つのファイル名リストを並行してウォークし、各ソースが対応するターゲットよりも新しいかどうかをテストします。 newer()のセマンティクスに従って、ソースがターゲットよりも新しいリストのペア(ソースターゲット)を返します。
distutils.dep_util.newer_group(sources, target[, missing='error'])
ターゲットソースにリストされているファイルに関して古くなっている場合はtrueを返します。 つまり、ターゲットが存在し、ソース内のすべてのファイルよりも新しい場合は、falseを返します。 それ以外の場合はtrueを返します。 missing は、ソースファイルが欠落している場合の処理を制御します。 デフォルト('error')は、 os.stat()の内部から OSError で爆破することです。 'ignore'の場合、欠落しているソースファイルをサイレントに削除します。 'newer'の場合、ソースファイルが欠落していると、 target が古くなっていると見なされます(これは「ドライラン」モードで便利です。入力が欠落しているために機能しないコマンドを実行しますが、実際にはコマンドを実行しないため、それは問題ではありません)。


9.9。 distutils.dir_util —ディレクトリツリーの操作

このモジュールは、ディレクトリおよびディレクトリのツリーを操作するための関数を提供します。

distutils.dir_util.mkpath(name[, mode=0o777, verbose=0, dry_run=0])
ディレクトリと不足している祖先ディレクトリを作成します。 ディレクトリがすでに存在する場合(または name が空の文字列である場合、つまり現在のディレクトリはもちろん存在します)、何もしません。 途中でディレクトリを作成できない場合は、DistutilsFileErrorを上げます(例: いくつかのサブパスが存在しますが、ディレクトリではなくファイルです)。 verbose がtrueの場合、各mkdirの1行の要約をstdoutに出力します。 実際に作成されたディレクトリのリストを返します。
distutils.dir_util.create_tree(base_dir, files[, mode=0o777, verbose=0, dry_run=0])
ファイルをそこに置くために必要な base_dir の下にすべての空のディレクトリを作成します。 base_dir は、必ずしもまだ存在しているとは限らないディレクトリの名前です。 files は、 base_dir に関連して解釈されるファイル名のリストです。 base_dir + files 内のすべてのファイルのディレクトリ部分がまだ存在しない場合は、作成されます。 modeverbose 、および dry_run フラグは、 mkpath()と同じです。
distutils.dir_util.copy_tree(src, dst[, preserve_mode=1, preserve_times=1, preserve_symlinks=0, update=0, verbose=0, dry_run=0])

ディレクトリツリー全体 src を新しい場所 dst にコピーします。 srcdst はどちらもディレクトリ名である必要があります。 src がディレクトリでない場合は、DistutilsFileErrorを上げます。 dst が存在しない場合は、 mkpath()で作成されます。 コピーの最終結果は、 src 内のすべてのファイルが dst にコピーされ、 src の下のディレクトリが dst に再帰的にコピーされることです。 。 出力名を使用して、コピーされた、またはコピーされた可能性のあるファイルのリストを返します。 戻り値は、 update または dry_run の影響を受けません。これは、 src の下にあるすべてのファイルのリストであり、名前は dstの下に変更されています。

prepare_mode および preserve_times は、 distutils.file_util.copy_file()の場合と同じです。 これらは通常のファイルにのみ適用され、ディレクトリには適用されないことに注意してください。 prepare_symlinks がtrueの場合、シンボリックリンクはシンボリックリンクとしてコピーされます(それらをサポートするプラットフォーム上で!)。 それ以外の場合(デフォルト)、シンボリックリンクの宛先がコピーされます。 updateverbose は、copy_file()と同じです。

.nfsで始まる src 内のファイルはスキップされます(これらのファイルの詳細については、 NFS FAQページの回答D2を参照してください)。

バージョン3.3.1で変更: NFSファイルは無視されます。

distutils.dir_util.remove_tree(directory[, verbose=0, dry_run=0])
ディレクトリとその下のすべてのファイルとディレクトリを再帰的に削除します。 エラーはすべて無視されます( verbose がtrueの場合、sys.stdoutに報告されることを除いて)。


9.10。 distutils.file_util —単一ファイル操作

このモジュールには、個々のファイルを操作するためのユーティリティ関数がいくつか含まれています。

distutils.file_util.copy_file(src, dst[, preserve_mode=1, preserve_times=1, update=0, link=None, verbose=0, dry_run=0])

ファイル srcdst にコピーします。 dst がディレクトリの場合、 src は同じ名前でそこにコピーされます。 それ以外の場合は、ファイル名である必要があります。 (ファイルが存在する場合、それは容赦なく破壊されます。) prepare_mode がtrue(デフォルト)の場合、ファイルのモード(タイプと許可ビット、または現在のプラットフォームで類似しているもの)がコピーされます。 prepare_times がtrue(デフォルト)の場合、最終変更時刻と最終アクセス時刻もコピーされます。 update がtrueの場合、 src は、 dst が存在しない場合、または dst が存在するがより古い場合にのみコピーされます。 X141X] src 。

link を使用すると、コピーする代わりに、ハードリンク( os.link()を使用)またはシンボリックリンク( os.symlink()を使用)を作成できます。 'hard'または'sym'へ; None(デフォルト)の場合、ファイルがコピーされます。 サポートされていないシステムでは link を設定しないでください。 copy_file()は、ハードリンクまたはシンボリックリンクが使用可能かどうかをチェックしません。 _copy_file_contents()を使用してファイルの内容をコピーします。

タプルを返す(dest_name, copied)dest_name は出力ファイルの実際の名前であり、 copyed は、ファイルがコピーされた場合(または、[ X168X] dry_run true)。

distutils.file_util.move_file(src, dst[, verbose, dry_run])

ファイル srcdst に移動します。 dst がディレクトリの場合、ファイルは同じ名前でそのディレクトリに移動されます。 それ以外の場合、 srcdst に名前が変更されます。 ファイルの新しいフルネームを返します。

警告

copy_file()を使用して、Unixでのデバイス間の移動を処理します。 他のシステムはどうですか?

distutils.file_util.write_file(filename, contents)
filename というファイルを作成し、 contents (行末記号のない文字列のシーケンス)を書き込みます。


9.11。 distutils.util —その他のその他のユーティリティ機能

このモジュールには、他のユーティリティモジュールに適合しない他のさまざまなビットやピースが含まれています。

distutils.util.get_platform()

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

戻り値の例:

  • linux-i586

  • linux-alpha

  • solaris-2.6-sun4u

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

Mac OS Xシステムの場合、OSバージョンは、現在のシステムのOSバージョンではなく、バイナリが実行される最小バージョン(つまり、Pythonのビルド中のMACOSX_DEPLOYMENT_TARGETの値)を反映します。

Mac OS Xでのユニバーサルバイナリビルドの場合、アーキテクチャ値は、現在のプロセッサのアーキテクチャではなく、ユニバーサルバイナリのステータスを反映します。 32ビットユニバーサルバイナリの場合、アーキテクチャはfat、64ビットユニバーサルバイナリの場合、アーキテクチャはfat64、4ウェイユニバーサルバイナリの場合、アーキテクチャはuniversalです。 Python2.7およびPython3.2以降、アーキテクチャfat3は3ウェイユニバーサルビルド(ppc、i386、x86_64)に使用され、intelはi386およびx86_64アーキテクチャのユニバーサルビルドに使用されます。

Mac OS Xでの戻り値の例:

  • macosx-10.3-ppc

  • macosx-10.3-fat

  • macosx-10.5-universal

  • macosx-10.6-intel

distutils.util.convert_path(pathname)
ネイティブファイルシステムで機能する名前として「pathname」を返します。 '/'で分割し、現在のディレクトリ区切り文字を使用して再びまとめます。 セットアップスクリプトのファイル名は常にUnixスタイルで提供され、ファイルシステムで実際に使用する前にローカル規則に変換する必要があるために必要です。 パス名がスラッシュで開始または終了する場合、Unix以外のシステムで ValueError を発生させます。
distutils.util.change_root(new_root, pathname)
パス名new_root を付加して返します。 パス名が相対パスの場合、これはos.path.join(new_root,pathname)と同等です。それ以外の場合は、パス名を相対パスにしてから、2つを結合する必要があります。これは、DOS / Windowsでは注意が必要です。
distutils.util.check_environ()
'os.environ'に、ユーザーが構成ファイルやコマンドラインオプションなどで使用できることを保証するすべての環境変数が含まれていることを確認します。 現在、これには次のものが含まれます。
  • HOME-ユーザーのホームディレクトリ(Unixのみ)
  • PLAT-ハードウェアとOSを含む現在のプラットフォームの説明( get_platform()を参照)
distutils.util.subst_vars(s, local_vars)

s でシェル/ Perlスタイルの変数置換を実行します。 $の後に名前が続く場合はすべて変数と見なされ、変数は local_vars ディクショナリ、またはos.environにある値に置き換えられます。 X192X] local_vars 。 os.environ は、特定の値が含まれていることを保証するために最初にチェック/拡張されます。 check_environ()を参照してください。 local_vars またはos.environのいずれにも見つからない変数については、 ValueError を発生させます。

これは本格的な文字列補間関数ではないことに注意してください。 有効な$variableは、大文字と小文字、数字、およびアンダースコアのみで構成できます。 {}または()スタイルの引用は使用できません。

distutils.util.split_quoted(s)
引用符と円記号のUnixシェルのような規則に従って文字列を分割します。 つまり、単語はスペースで区切られます。ただし、これらのスペースが円記号でエスケープされていないか、引用符で囲まれた文字列内にある場合に限ります。 一重引用符と二重引用符は同等であり、引用符は円記号でエスケープできます。 バックスラッシュは2文字のエスケープシーケンスから削除され、エスケープされた文字のみが残ります。 引用符は、引用符で囲まれた文字列から削除されます。 単語のリストを返します。
distutils.util.execute(func, args[, msg=None, verbose=0, dry_run=0])
外界に影響を与えるアクションを実行します(たとえば、ファイルシステムへの書き込み)。 このようなアクションは、 dry_run フラグによって無効にされるため、特別です。 この方法は、すべての官僚主義をあなたに代わって処理します。 あなたがしなければならないのは、呼び出す関数とその引数タプル(実行されている「外部アクション」を具体化するため)、および出力するオプションのメッセージを提供することだけです。
distutils.util.strtobool(val)

真理の文字列表現をtrue(1)またはfalse(0)に変換します。

真の値は、yyesttrueon、および1です。 偽の値は、nnoffalseoff、および0です。 val がそれ以外の場合、 ValueError を発生させます。

distutils.util.byte_compile(py_files[, optimize=0, force=0, prefix=None, base_dir=None, verbose=1, dry_run=0, direct=None])

Pythonソースファイルのコレクションを__pycache__サブディレクトリの.pycファイルにバイトコンパイルします( PEP 3147 および [を参照) X141X] PEP 488 )。 py_files は、コンパイルするファイルのリストです。 .pyで終わらないファイルはすべてサイレントにスキップされます。 optimize は次のいずれかである必要があります。

  • 0-最適化しない

  • 1-通常の最適化(python -Oなど)

  • 2-追加の最適化(python -OOなど)

force がtrueの場合、タイムスタンプに関係なく、すべてのファイルが再コンパイルされます。

bytecode ファイルにエンコードされたソースファイル名は、デフォルトで py_files にリストされているファイル名になります。 これらはプレフィックスおよび basedir で変更できます。 prefix は、各ソースファイル名から削除される文字列であり、 base_dir は、先頭に追加されるディレクトリ名です( prefix が削除された後)。 必要に応じて、 prefixbase_dir のいずれかまたは両方(またはどちらも)を指定できません。

dry_run がtrueの場合、ファイルシステムに影響を与えるようなことは実際には何もしません。

バイトコンパイルは、このインタープリタープロセスで標準の py_compile モジュールを使用して直接実行するか、一時スクリプトを記述して実行することにより間接的に実行します。 通常、 byte_compile()に直接コンパイルを使用するかどうかを判断させる必要があります(詳細については、ソースを参照してください)。 direct フラグは、間接モードで生成されたスクリプトによって使用されます。 何をしているのかわからない場合は、Noneに設定したままにしてください。

バージョン3.2.3で変更:タグのないファイルの代わりに__pycache__サブディレクトリに、名前にインポートマジックタグを含む.pycファイルを作成する現在のディレクトリにあります。

バージョン3.5で変更: PEP 488 に従って.pycファイルを作成します。

distutils.util.rfc822_escape(header)
RFC 822 ヘッダーに含めるためにエスケープされたヘッダーのバージョンを返します。各改行の後に8つのスペーススペースがあることを確認してください。 文字列の他の変更は行わないことに注意してください。


9.12。 distutils.dist —配布クラス

このモジュールは、 Distribution クラスを提供します。これは、構築/インストール/配布されるモジュール配布を表します。


9.13。 distutils.extension —拡張クラス

このモジュールは、セットアップスクリプトでC / C ++拡張モジュールを記述するために使用されるExtensionクラスを提供します。


9.14。 distutils.debug —distutilsデバッグモード

このモジュールは、DEBUGフラグを提供します。


9.15。 distutils.errors —distutilsの例外

Distutilsモジュールで使用される例外を提供します。 Distutilsモジュールは標準の例外を発生させる可能性があることに注意してください。 特に、SystemExitは通常、明らかにエンドユーザーのせいであるエラーに対して発生します(例: 不正なコマンドライン引数)。

このモジュールは、from ... import *モードで安全に使用できます。 名前がDistutilsで始まり、Errorで終わるシンボルのみをエクスポートします。


9.16。 distutils.fancy_getopt —標準のgetoptモジュールのラッパー

このモジュールは、次の追加機能を提供する標準の getopt モジュールのラッパーを提供します。

  • ショートオプションとロングオプションは結びついています
  • オプションにはヘルプ文字列があるため、 fancy_getopt()は完全な使用状況の概要を作成する可能性があります
  • オプションは、渡されたオブジェクトの属性を設定します
  • ブールオプションには、「負のエイリアス」を含めることができます。 --quiet--verboseの「負のエイリアス」である場合、コマンドラインの--quietverbose をfalseに設定します。
distutils.fancy_getopt.fancy_getopt(options, negative_opt, object, args)
ラッパー関数。 options は、 FancyGetopt のコンストラクターで説明されている(long_option, short_option, help_string) 3タプルのリストです。 negative_opt は、オプション名をオプション名にマッピングする辞書である必要があります。キーと値の両方が options リストに含まれている必要があります。 object は、値を格納するために使用されるオブジェクトです( FancyGetopt クラスの getopt()メソッドを参照)。 args は引数リストです。 Noneargs として渡すと、sys.argv[1:]が使用されます。
distutils.fancy_getopt.wrap_text(text, width)
テキスト幅未満に折り返します。
class distutils.fancy_getopt.FancyGetopt([option_table=None])

option_tableは、3タプルのリストです:(long_option, short_option, help_string)

オプションが引数を取る場合、その long_option には'='が追加されている必要があります。 short_option は1文字で、':'は使用しないでください。 long_option に対応する short_option がない場合、 short_optionNoneである必要があります。 すべてのオプションタプルには長いオプションが必要です。

FancyGetopt クラスは、次のメソッドを提供します。

FancyGetopt.getopt([args=None, object=None])

argsのコマンドラインオプションを解析します。 オブジェクトに属性として保存します。

argsNoneであるか、提供されていない場合は、sys.argv[1:]を使用します。 objectNoneであるか指定されていない場合、新しいOptionDummyインスタンスを作成し、そこにオプション値を格納して、タプル(args, object)を返します。 object が指定されている場合は、その場で変更され、 getopt()args を返すだけです。 どちらの場合も、返される args は、渡された args リストの変更されたコピーであり、変更されません。

FancyGetopt.get_option_order()
getopt()がまだ呼び出されていない場合、 getopt()の前回の実行で処理された(option, value)タプルのリストを返します。 RuntimeError を発生させます。 。
FancyGetopt.generate_help([header=None])

この FancyGetopt オブジェクトのオプションテーブルからヘルプテキスト(文字列のリスト、提案された出力行ごとに1つ)を生成します。

提供されている場合は、提供されているヘッダーをヘルプの上部に印刷します。


9.17。 distutils.filelist —FileListクラス

このモジュールは、FileListクラスを提供します。これは、ファイルシステムについて調べたり、ファイルのリストを作成したりするために使用されます。


9.18。 distutils.log - 単純 PEP 282 スタイルのロギング

9.19。 distutils.spawn —サブプロセスを生成します

このモジュールは、spawn()関数を提供します。これは、サブプロセスで別のプログラムを起動するためのさまざまなプラットフォーム固有の関数のフロントエンドです。 また、find_executable()を提供して、指定された実行可能ファイル名のパスを検索します。


9.20。 distutils.sysconfig —システム構成情報

distutils.sysconfig モジュールは、Pythonの低レベルの構成情報へのアクセスを提供します。 使用可能な特定の構成変数は、プラットフォームと構成に大きく依存します。 特定の変数は、実行されている特定のバージョンのPythonのビルドプロセスによって異なります。 変数は、Makefileにある変数と、Unixシステム上のPythonでインストールされる構成ヘッダーです。 構成ヘッダーは、2.2以降のPythonバージョンではpyconfig.hと呼ばれ、以前のバージョンのPythonではconfig.hと呼ばれます。

distutils パッケージの他の部分に対していくつかの便利な操作を実行するいくつかの追加機能が提供されています。

distutils.sysconfig.PREFIX
os.path.normpath(sys.prefix)の結果。
distutils.sysconfig.EXEC_PREFIX
os.path.normpath(sys.exec_prefix)の結果。
distutils.sysconfig.get_config_var(name)
単一の変数の値を返します。 これはget_config_vars().get(name)と同等です。
distutils.sysconfig.get_config_vars(...)
変数定義のセットを返します。 引数がない場合、これは構成変数の名前を値にマッピングするディクショナリを返します。 引数が指定されている場合、それらは文字列である必要があり、戻り値は関連する値を与えるシーケンスになります。 指定された名前に対応する値がない場合、Noneがその変数に含まれます。
distutils.sysconfig.get_config_h_filename()
構成ヘッダーのフルパス名を返します。 Unixの場合、これは configure スクリプトによって生成されるヘッダーになります。 他のプラットフォームの場合、ヘッダーはPythonソースディストリビューションによって直接提供されます。 このファイルは、プラットフォーム固有のテキストファイルです。
distutils.sysconfig.get_makefile_filename()
Pythonの構築に使用されたMakefileのフルパス名を返します。 Unixの場合、これは configure スクリプトによって生成されたファイルになります。 他のプラットフォームの意味は異なります。 このファイルは、プラットフォーム固有のテキストファイル(存在する場合)です。 この関数は、POSIXプラットフォームでのみ役立ちます。
distutils.sysconfig.get_python_inc([plat_specific[, prefix]])
一般またはプラットフォームに依存するCインクルードファイルのディレクトリを返します。 plat_specific がtrueの場合、プラットフォームに依存するインクルードディレクトリが返されます。 falseまたは省略した場合、プラットフォームに依存しないディレクトリが返されます。 prefix が指定されている場合は、 PREFIX の代わりにプレフィックスとして使用されるか、 plat_specific の場合は EXEC_PREFIX の代わりにexec-prefixとして使用されます。 ]は本当です。
distutils.sysconfig.get_python_lib([plat_specific[, standard_lib[, prefix]]])
一般的なライブラリまたはプラットフォームに依存するライブラリのインストール用のディレクトリを返します。 plat_specific がtrueの場合、プラットフォームに依存するインクルードディレクトリが返されます。 falseまたは省略した場合、プラットフォームに依存しないディレクトリが返されます。 prefix が指定されている場合は、 PREFIX の代わりにプレフィックスとして使用されるか、 plat_specific の場合は EXEC_PREFIX の代わりにexec-prefixとして使用されます。 ]は本当です。 standard_lib がtrueの場合、サードパーティの拡張機能をインストールするためのディレクトリではなく、標準ライブラリのディレクトリが返されます。

次の関数は、 distutils パッケージ内での使用のみを目的としています。

distutils.sysconfig.customize_compiler(compiler)

distutils.ccompiler.CCompiler インスタンスのプラットフォーム固有のカスタマイズを実行します。

この関数は、現時点ではUnixでのみ必要ですが、上位互換性をサポートするために一貫して呼び出す必要があります。 Unixフレーバー間で異なる情報を挿入し、PythonのMakefileに保存されます。 この情報には、選択したコンパイラ、コンパイラ、リンカのオプション、およびリンカが共有オブジェクトに使用する拡張機能が含まれます。

この関数はさらに特別な目的であり、Python独自のビルドプロシージャからのみ使用する必要があります。

distutils.sysconfig.set_python_build()
distutils.sysconfig モジュールに、Pythonのビルドプロセスの一部として使用されていることを通知します。 これにより、ファイルの多くの相対的な場所が変更され、インストールされたPythonではなくビルド領域にファイルを配置できるようになります。


9.21。 distutils.text_file —TextFileクラス

このモジュールは、 TextFile クラスを提供します。このクラスは、(オプションで)コメントの削除、空白行の無視、および行と円記号の結合を処理するテキストファイルへのインターフェイスを提供します。

class distutils.text_file.TextFile([filename=None, file=None, **options])

このクラスは、行ごとの構文を持つテキストファイルを処理するときに一般的に実行するすべてのことを処理するファイルのようなオブジェクトを提供します。コメントを削除します(#がコメントである限り)文字)、空白行をスキップし、改行をエスケープして隣接する行を結合します(つまり、 行末の円記号)、先頭および/または末尾の空白を削除します。 これらはすべてオプションであり、個別に制御できます。

このクラスは warn()メソッドを提供するため、問題の論理行が複数の物理行にまたがっている場合でも、物理行番号を報告する警告メッセージを生成できます。 また、一度に1行ずつ先読みを実装するための unreadline()も提供します。

TextFile インスタンスは、 filenamefile 、またはその両方で作成されます。 RuntimeError は、両方がNoneの場合に発生します。 filename は文字列で、 file はファイルオブジェクト(または readline()および close()メソッドを提供するもの)である必要があります。 TextFile が警告メッセージに含めることができるように、少なくともファイル名を指定することをお勧めします。 file が指定されていない場合、 TextFile は、 open()組み込み関数を使用して独自のファイルを作成します。

オプションはすべてブール値であり、 readline()によって返される値に影響します。

オプション名

説明

ディフォルト

strip_comments

'#'から行末まで、および'#'につながる空白を削除します。ただしバックスラッシュでエスケープされている場合を除きます。

NS

lstrip_ws

返す前に、各行から先頭の空白を削除します

NS

rstrip_ws

返す前に、各行から末尾の空白(行末記号を含む!)を削除します。

NS

skip_blanks

コメントと空白を削除した後の空の行をスキップします。 (lstrip_wsとrstrip_wsの両方がfalseの場合、一部の行は空白のみで構成されている可能性があります。 skip_blanks がtrueであっても、これらはスキップされません。)

NS

join_lines

バックスラッシュがコメントと空白を取り除いた後の行の最後の非改行文字である場合は、次の行をそれに結合して1つの論理行を形成します。 N個の連続する行が円記号で終わる場合、N +1個の物理行が結合されて1つの論理行を形成します。

NS

崩壊_結合

前任者に結合されている行から先頭の空白を削除します。 (join_lines and not lstrip_ws)の場合にのみ重要です

NS

rstrip_ws は末尾の改行を削除できるため、 readline()のセマンティクスは、組み込みファイルオブジェクトの readline()メソッドのセマンティクスとは異なる必要があることに注意してください。 特に、 readline()は、ファイルの終わりに対してNoneを返します。 rstrip_ws [の場合、空の文字列は空白行(またはすべて空白行)である可能性があります。 X160X]は真ですが、 skip_blanks は真ではありません。

open(filename)

新しいファイルファイル名を開きます。 これは、ファイルまたはファイル名コンストラクター引数をオーバーライドします。

close()

現在のファイルを閉じて、それについてわかっていることをすべて忘れてください(ファイル名と現在の行番号を含む)。

warn(msg[, line=None])

現在のファイルの現在の論理行に関連付けられた警告メッセージを(stderrに)出力します。 ファイル内の現在の論理行が複数の物理行にまたがっている場合、警告は"lines 3-5"などの範囲全体を参照します。 line が指定されている場合、現在の行番号が上書きされます。 物理行の範囲を示すリストまたはタプル、または単一の物理行の整数の場合があります。

readline()

現在のファイルから(または、 unreadline()で行が以前に「未読」だった場合は内部バッファーから)単一の論理行を読み取って返します。 join_lines オプションがtrueの場合、これには、単一の文字列に連結された複数の物理行の読み取りが含まれる場合があります。 現在の行番号を更新するため、 readline()の後に warn()を呼び出すと、読み取ったばかりの物理行に関する警告が出力されます。 rstrip_ws が真であるが、 strip_blanks が真でない場合、空の文字列が発生する可能性があるため、ファイルの終わりにNoneを返します。

readlines()

現在のファイルに残っているすべての論理行のリストを読み取って返します。 これにより、現在の行番号がファイルの最後の行に更新されます。

unreadline(line)

line (文字列)を内部バッファにプッシュします。内部バッファは、今後の readline()呼び出しによってチェックされます。 一度に1行ずつ先読みするパーサーを実装するのに便利です。 unreadline()で「未読」の行は、 readline()で読み取ったときに、その後再クレンジング(空白の削除など)されないことに注意してください。 readline()を呼び出す前に、 unreadline()を複数回呼び出すと、行は最新の最初の順序で返されます。


9.22。 distutils.version —バージョン番号クラス

9.23。 distutils.cmd —Distutilsコマンドの抽象基本クラス

このモジュールは、抽象基本クラスコマンドを提供します。

class distutils.cmd.Command(dist)

コマンドクラスを定義するための抽象的な基本クラス、Distutilsの「働きバチ」。 コマンドクラスの便利な例えは、 options と呼ばれるローカル変数を持つサブルーチンと考えることです。 オプションは initialize_options()で宣言され、 finalize_options()で定義されます(最終値を指定)。どちらもすべてのコマンドクラスで定義する必要があります。 オプション値は外部(コマンドライン、構成ファイルなど)から取得される可能性があり、他のオプションに依存するオプションは、これらの外部の影響が処理された後に計算する必要があるため、この2つを区別する必要があります。したがって finalize_options( )。 オプションの値に基づいてすべての作業を行うサブルーチンの本体は、 run()メソッドであり、これもすべてのコマンドクラスで実装する必要があります。

クラスコンストラクターは、単一の引数 distDistribution インスタンスを取ります。


9.24。 新しいDistutilsコマンドの作成

このセクションでは、新しいDistutilsコマンドを作成する手順の概要を説明します。

新しいコマンドは、 distutils.command パッケージのモジュールにあります。 そのディレクトリには、command_templateというサンプルテンプレートがあります。 このファイルを、実装している新しいコマンドと同じ名前の新しいモジュールにコピーします。 このモジュールは、モジュール(およびコマンド)と同じ名前のクラスを実装する必要があります。 したがって、たとえば、コマンドpeel_bananaを作成するには(ユーザーがsetup.py peel_bananaを実行できるようにするため)、command_templatedistutils/command/peel_banana.pyにコピーしてから編集します。そのため、 distutils.cmd.Command のサブクラスであるクラスpeel_bananaを実装しています。

Command のサブクラスは、次のメソッドを定義する必要があります。

Command.initialize_options()
このコマンドがサポートするすべてのオプションのデフォルト値を設定します。 これらのデフォルトは、他のコマンド、セットアップスクリプト、構成ファイル、またはコマンドラインによって上書きされる可能性があることに注意してください。 したがって、これはオプション間の依存関係をコーディングする場所ではありません。 一般に、 initialize_options()の実装は、self.foo = Noneの割り当ての集まりにすぎません。
Command.finalize_options()
このコマンドがサポートするすべてのオプションの最終値を設定します。 これは常に可能な限り遅く呼び出されます。 コマンドラインまたは他のコマンドからのオプションの割り当てが行われた後。 したがって、これはオプションの依存関係をコーディングする場所です。 foobar に依存している場合は、 bar から foo を設定しても安全です。 foo が、 initialize_options()で割り当てられた値と同じである限り。
Command.run()
コマンドの存在理由: initialize_options()で初期化されたオプションによって制御され、他のコマンド、セットアップスクリプト、コマンドライン、および構成ファイルによってカスタマイズされた、実行するために存在するアクションを実行します。 finalize_options()でファイナライズされます。 すべての端末出力とファイルシステムの相互作用は、 run()によって実行する必要があります。
Command.sub_commands

sub_commands は、コマンドの「ファミリ」の概念を形式化します。 installは、サブコマンドinstall_libinstall_headersなどの親として使用されます。 コマンドファミリーの親は、 sub_commands をクラス属性として定義します。 これは、2タプル(command_name, predicate)のリストであり、 command_name は文字列で、述語は関数、文字列、またはNoneです。 predicate は、対応するコマンドが現在の状況で適用可能かどうかを判断する親コマンドのメソッドです。 (例えば install_headersは、インストールするCヘッダーファイルがある場合にのみ適用できます。)述語Noneの場合、そのコマンドは常に適用できます。

sub_commands は通常、クラスの end で定義されます。これは、述語がクラスのメソッドである可能性があるため、すでに定義されている必要があるためです。 標準的な例は、 install コマンドです。


9.25。 distutils.command —個々のDistutilsコマンド

9.26。 distutils.command.bdist —バイナリインストーラーをビルドする

9.27。 distutils.command.bdist_packager —パッケージャーの抽象基本クラス

9.28。 distutils.command.bdist_dumb —「ダム」インストーラーを構築する

9.29。 distutils.command.bdist_msi —Microsoftインストーラバイナリパッケージをビルドする

class distutils.command.bdist_msi.bdist_msi

Windowsインストーラー(。msi)バイナリパッケージをビルドします。

ほとんどの場合、bdist_msiインストーラーは、bdist_wininstインストーラーよりも優れた選択肢です。これは、Win64プラットフォームのサポートが向上し、管理者が非対話型インストールを実行できるようにし、グループポリシーを介してインストールできるためです。 。


9.30。 distutils.command.bdist_rpm — RedhatRPMおよびSRPMとしてバイナリディストリビューションを構築します

9.31。 distutils.command.bdist_wininst —Windowsインストーラーをビルドする

バージョン3.8以降非推奨:代わりにbdist_wheel(ホイールパッケージ)を使用してください。


9.32。 distutils.command.sdist —ソースディストリビューションを構築する

9.33。 distutils.command.build —パッケージのすべてのファイルをビルドします

9.34。 distutils.command.build_clib —パッケージ内のCライブラリをビルドします

9.35。 distutils.command.build_ext —パッケージに拡張機能を構築する

9.36。 distutils.command.build_py —パッケージの.py /.pycファイルをビルドします

class distutils.command.build_py.build_py
class distutils.command.build_py.build_py_2to3

インストールされる各.pyファイルで2to3変換ライブラリも実行するbuild_pyの代替実装。 Python 2.xと3.xの両方で実行するように設計されたディストリビューションのsetup.pyファイルでこれを使用するには、次を追加します。

try:
    from distutils.command.build_py import build_py_2to3 as build_py
except ImportError:
    from distutils.command.build_py import build_py

setup.pyに、そしてそれ以降:

cmdclass = {'build_py': build_py}

setup()の呼び出しに。


9.37。 distutils.command.build_scripts —パッケージのスクリプトを作成します

9.38。 distutils.command.clean —パッケージビルド領域をクリーンアップします

このコマンドは、 build によって作成された一時ファイルと、中間のコンパイル済みオブジェクトファイルなどのそのサブコマンドを削除します。 --allオプションを使用すると、ビルドディレクトリ全体が削除されます。

インプレースでビルドされた拡張モジュールは、ビルドディレクトリにないため、クリーンアップされません。


9.39。 distutils.command.config —パッケージ構成を実行します

9.40。 distutils.command.install —パッケージをインストールします

9.41。 distutils.command.install_data —パッケージからデータファイルをインストールします

9.42。 distutils.command.install_headers —パッケージからC / C ++ヘッダーファイルをインストールします

9.43。 distutils.command.install_lib —パッケージからライブラリファイルをインストールします

9.44。 distutils.command.install_scripts —パッケージからスクリプトファイルをインストールします

9.45。 distutils.command.register —モジュールをPython PackageIndexに登録します

registerコマンドは、パッケージをPython PackageIndexに登録します。 これについては、 PEP 301 で詳しく説明されています。


9.46。 distutils.command.check —パッケージのメタデータを確認します

checkコマンドは、パッケージのメタデータに対していくつかのテストを実行します。 たとえば、必要なすべてのメタデータがsetup()関数に渡される引数として提供されていることを確認します。