用語集#

バイナリ配布物#

`ビルド済配布物 <Built Distribution>`の特定の種類で、コンパイル済みの拡張部分を含むもの。

ビルドバックエンド#

ソースコードツリーや ソースコード配布物 を受け取って、そこからソースコード配布物や wheel をビルドするライブラリ。ビルド自体は フロントエンド によってバックエンドに任されます。すべてのバックエンドは標準化されたインターフェースを提供します。

ビルドバックエンドの例としては、 flit の flit-corehatchのhatchlingMaturinmeson-pythonscikit-build-coreSetuptools があります。

ビルドフロントエンド#

任意のソースコードツリーまたは ソースコード配布物 を入力として、それらからソースコード配布物または wheels をビルドするためにユーザが走らせるであろうツール。実際のビルド作業は、それぞれのソースコードツリーの ビルドバックエンド に委任されます。

ビルドフロントエンドの例としては、 pipビルド があります。

ビルド済配布物#

:term:`配布物 <Distribution Package>`とは、ターゲットとなるシステムの適切な位置に移動することでインストールされるファイルやメタデータを内包したフォーマットです。:term:`Wheel`はそのようなフォーマットですが、他方で、distutilの :term:`ソースコード配布物 <Source Distribution`("sdist"とも)はそうではなく、インストール可能になる前にビルドする段階が必要です。このフォーマットを念頭に置くと、Pythonファイルが必ずしも予めコンパイルされている必要はないことがわかります(:term:`Wheel`は意図的にコンパイル済みのPythonファイルを含まないようにしています)。

配布パッケージ#

:term:`モジュール <Module>`すなわちPythonの :term:`パッケージ <Import Package>`や、ある :term:`Release`を配布するために使われるその他のリソースファイルを内部に含むバージョン付きアーカイブファイル。アーカイブファイルはエンドユーザがインターネットからダウンロードしてインストールするものです。

配布パッケージは単語ひとつで「パッケージ」や「配布物」と呼ばれることもしばしばですが、本ガイドでは、 :term:`インポートパッケージ <Import Package>`(これも通常は単に「パッケージ」と呼ばれます)や他の種類の配布物(例えばLinuxディストリビューションやPython言語の配布物)でよく単語ひとつの「配布物」と呼ばれるものとの混同を避けるために明確に述べる必要がある場合には、長い方の用語を用いることがあります。

#

ビルド済配布物Python Eggs を参照してください。

拡張モジュール#

:term:`モジュール <Module>`とは、Pythonの実装のうちの低レベル言語で書かれた部分で、C/C++で書かれたCythonやJavaで書かれたJythonが該当する。典型的には動的にロードできるコンパイル済みのファイルをひとつ含んでいて、Unix上では共有オブジェクトファイル(.so)、Windows上ではDLL(拡張子.pydを与えられる)のPython拡張、Jython拡張ではJavaのクラスファイルの形を取る。

既知の良好なセット#

(KGSとは)相互に互換性のある特定のバージョンの配布物の集合。典型的には、テストスイートで全てのテストに合格して実行できるようなパッケージの特定の組み合わせが既知の良好なセット(KGS)であると宣言されます。この用語は、個々の配布物を複数組み合わせて構成されるフレームワークやツールキットで共通して用いられます。

インポートパッケージ#

直接に、あるいは何段階になっても良いが、他のパッケージを組み込んで使うようなPythonモジュール。

インポートパッケージは、より普通には「パッケージ」という1単語の用語で呼ばれますが、本ガイドでは、同様に単に「パッケージ」と呼ばれることが普通である :term:`配布物パッケージ <Distribution Package>`との混同を避けるために必要な場合には、長い方の用語を用いることにします。

モジュール#

Pythonにおけるソースコード再利用の基本的な単位で、 :term:`Pure Module`か :term:`Extension Module`の二つのタイプのうちのいずれか。

パッケージインデックス#

:term:`パッケージ <Distribution Package>`の発見・消費(訳註、意訳になるが検索・ダウンロードが適切か)を自動化するwebインターフェイスを伴った配布物のリポジトリ。

プロジェクト単位の索引#

ある プロジェクト

プロジェクト#

ライブラリ、フレームワーク、スクリプト、プラグイン、アプリケーション、ないし一連のデータもしくはその他のリソース、または、これらの組み合わせで :term:`配布物 <Distribution Package>`として意図的にパッケージされたもの。

ほとんどのプロジェクトで PEP 518 ``build-system``として :ref:`distutils`か :ref:`setuptools`を用いて :term:`配布物 <Distribution Package>`を作成しますので、現時点でプロジェクトを定義するもうひとつの実践的な方法は、プロジェクトのソースコードの一番上のディレクトリに :term:`pyproject.toml`や :term:`setup.py`または :term:`setup.cfg`のファイルを含む何ものかというものです。

Pythonにおけるプロジェクトは、 :term:`PyPI <Python Package Index (PyPI)>`に登録される一意の名前を持っていなければなりません。そして、プロジェクトはそれぞれひとつまたはより多くの :term:`リリース <Release>`を含んでいて、各リリースはひとつまたはより多くの :term:`配布物 <Distribution Package>`を内包しています。

そのプロジェクトを稼働させるためにインポートされるパッケージの名前に因んでプロジェクトに名前をつけるのが普通であるという強い慣習があることを覚えておいてください。しかしながら、常にそうしなければならないわけではありません。「なんとか」というプロジェクトから配布物をインストールしていながらも、「かんとか」(訳註、「なんとか」とは無関係の別の名前の例)という名前でのみインポート可能なパッケージを提供することは可能です。

純粋なモジュール#

Pythonで書かれていて単一の``.py``ファイル(とおそらくは対応する``.pyc``ファイルや``.pyo``ファイル)に収められた モジュール

Pythonパッケージングオーソリティ(PyPA)#

PyPAは、Pythonのパッケージングに関係する多くのプロジェクトを維持管理する作業グループです。その活動の一環として papa.io を維持管理しており、 GitHubBitbucket に関連プロジェクトを置くとともに、 distutils-sig メーリングリストPython談話フォーラム で議論を進めています。

Pythonパッケージインデックス (PyPI)#

PyPI は、Pythonコミュニティにとってデフォルトの :term:`Package Index`です。ここから配布物を取り出し、また、配布するためにすべてのPython開発者に開かれています。

pypi.org#

pypi.org は、 Python パッケージインデックス(PyPI) のためのドメイン名です。2017年にそれまでのドメイン名である pypi.python.org を置き換えました。 :ref:`warehouse`を使っています。

pyproject.toml#

ツール不可知論者の プロジェクト 仕様を示すファイル。 PEP 518 で定義。

リリース#

ある特定の時点における :term:`プロジェクト <Project>`のスナップショットで、バージョン識別子付きのもの。

リリースを作成することは、複数の 配布物 を公開することを伴います。例えば、あるプロジェクトのバージョン1.0がリリースされたならば、ソースコード配布物とWindowsインストーラ付配布物の両方が利用可能となっているという具合です。

要求事項#

インストールされる パッケージ の仕様。 PYPA が推奨するインストーラである pip では、「要求事項」とも解釈できる仕様を様々な様式で書くことを許容しています。詳細については、 pip install の項を参照してください。

要求事項識別子#

パッケージインデックス <Package Index>`からパッケージをインストールするために :ref:`pip で用いられる様式。この様式の EBNF 文法構造については、 依存関係指定子 を見てください。例えば、 "foo>=1.3" は要求事項識別子であり、 "foo" の部分がプロジェクトの名称で、 ">=1.3" の部分は バージョン指定子 です

Requirementsファイル#

pip`を用いてインストールできるように :term:`要求事項 を記したファイル。詳しい情報は、 pip のドキュメントの pip:Requirementsファイル をみてください。

setup.py#
setup.cfg#

distutils`や :ref:`setuptools で使われるプロジェクトの仕様を記したファイル。 :term:`pyproject.toml`も見てください。

ソースコードアーカイブ#

ソースコード配布物ビルド配布物 という用語を作る前には、:term:`リリース <Release>`向けに生のソースコードを収めたアーカイブのことをこう呼んでいた。

ソースコード配布物 (またはsdist)#

pip`のようなツールでインストールする時や :term:`ビルド配布物 を生成する時に必要なメタデータと必須ソースコードを提供する、(通常は python -m build --sdist を使って生成される) 配布物 フォーマット 。

システムパッケージ#

rpmやdpkgのように、オペレーティングシステムに固有のフォーマットで提供されるパッケージ。

バージョン指定子#

要求事項指定子 のバージョン部分。例えば、"foo>=1.3" の中の ">=1.3" の部分。 Python のパッケージングで現在サポートされている識別子の完全な記述については、 バージョン指定子の仕様 を読んでください。この仕様のサポートは、 Setuptools v8.0 と pip v6.0 で実装されました。

仮想環境#

システム全体からではなく、ある特定のアプリケーションだけから使えるようにパッケージをインストールすることができる、隔離されたPython環境。詳細は :ref:`仮想環境の生成と使用 <Creating and using Virtual Environments`を参照してください。

Wheel#

ビルド済配布物 フォーマットは、 Egg フォーマットを置換することを意図して、公式の 標準仕様 で導入されました。Wheel は、現時点では、 pip によってサポートされています。

動作可能セット#

一連のインポート可能な 配布物。これらは sys.path 変数から検索できる配布物です。あるプロジェクトには、高々(訳註、at mostではなくat least、すくなくとも、か。)ひとつの 配布物 が動作可能セットにあります。