プロジェクト概要

Page Status:Complete
Last Reviewed:2016-06-24

Python インストールおよびパッケージングに関する最も重要なプロジェクト群の概要とリンクを示す。

PyPA 内のプロジェクト

bandersnatch

Mailing list [2] | Issues | Bitbucket | PyPI

bandersnatch は PyPI ミラーリングクライアントだ。PyPI コンテンツを完全かつ効率的にミラーリングするよう設計されている。

distlib

Docs | Mailing list [2] | Issues | Bitbucket | PyPI

distlib は Python ソフトウェアのパッケージングと配布に関する低レベル機能を実装するライブラリだ。これは distutils2 プロジェクトの一部からなる。distutils2 は Python 3.3 標準ライブラリで packaging としてリリースされる予定だったが、Python 3.3 がベータテストに入る直前に削除された。

packaging

Dev list | Issues | Github | PyPI | User irc:#pypa | Dev irc:#pypa-dev

pipsetuptools が利用する Python パッケージング用のコアユーティリティ。

pip

Docs | User list [1] | Dev list | Issues | Github | PyPI | User irc:#pypa | Dev irc:#pypa-dev

Python パッケージをインストールするツール。

Python Packaging User Guide

Docs | Mailing list | Issues | Github | User irc:#pypa | Dev irc:#pypa-dev

このガイド!

setuptools

Docs | User list [2] | Dev list | Issues | GitHub | PyPI | User irc:#pypa | Dev irc:#pypa-dev

setuptools (easy_install を含む)は Python distutils の強化版で、 Python distributions, 特に他のパッケージに依存するものをより簡単にビルド/配布できるようにする。

distribute は setuptools の fork だったが、v0.7 で setuptools に再度マージされた。これにより、setuptools が Python パッケージングの第一の選択肢となった。

twine

Mailing list [2] | Issues | Github | PyPI

Twine は PyPI とやりとりするユーティリティで、 setup.py upload の安全な代替となる。

virtualenv

Docs | User list | Dev list | Issues | Github | PyPI | User irc:#pypa | Dev irc:#pypa-dev

隔離された Python 環境を作るツール。

Warehouse

Docs | Mailing list [2] | Issues | Github | Dev irc:#pypa-dev

新しい未リリースの PyPI アプリケーション。 https://warehouse.python.org/ でプレビューできる。

wheel

Docs | Mailing list [2] | Issues | Bitbucket | PyPI | User irc:#pypa | Dev irc:#pypa-dev

主に、wheel プロジェクトは wheel distributions を作るための setuptools bdist_wheel 拡張を提供する。加えて、wheel の作成とインストールを行う独自のコマンドラインユーティリティも提供する。

PyPA 外のプロジェクト

bento

Docs | Mailing list | Issues | Github | PyPI

Bento は Python ソフトウェアのためのパッケージングソリューションで、 distutils, setuptools, distribute などの代替を目指している。Bento の哲学は再現性、拡張性、簡潔さだ(この順で)。

buildout

Docs | Mailing list [2] | Issues | PyPI | irc:#buildout

buildout は Python ベースのビルドシステムで、複数のパーツ(非 Python ベースでもよい)からアプリケーションを作成、アセンブル、デプロイできる。buildout 構成を作り、後で同じソフトウェアを再現できるようにする。

conda

Docs

Conda は Anaconda Python 環境用のパッケージ管理ツールだ。Anaconda Python は Continuum Analytics によるディストリビューションで、科学コミュニティ(特にバイナリ拡張のインストールが難しくなりがちな Windows環境)向けに特化している。

Conda は pip, virtualenv, wheel とは完全に別のツールだが、これらを組み合わせたような機能(パッケージ管理、仮想環境管理、バイナリ拡張のデプロイ)を提供する。

Conda はパッケージを PyPI からインストールせず、Continuum 公式リポジトリ, anaconda.org (ユーザが作成した conda パッケージの置き場), またはローカル(例:イントラネット)パッケージサーバからのみインストールを行う。ただし、pip をインストールすることもでき、pip は conda とは独立して PyPI 由来の distributions を管理する。

devpi

Docs | Mailing List | Issues | PyPI

devpi には強力な PyPI 互換サーバと PyPI プロキシキャッシュがあり、 Python でパッケージング、テスト、リリース活動を行うためのコマンドラインツールが付属する。

Hashdist

Docs | Github

Hashdist は non-root ソフトウェアディストリビューションを構築するライブラリだ。Hashdist は「Debian の技術がうまくいかない場合に選ぶ Debian」であろうとしている。Pythonista にとっての Hashdist のベストな見方は、virtualenv と buildout のより強力なハイブリッドかもしれない。

pex

Docs | Github | PyPI

pex は .pex (Python EXecutable) を生成するライブラリおよびツールであり、同時に virtualenv の精神に基づくスタンドアロン Python 環境でもある。 .pex ファイルは単なる zip ファイルで、 #!/usr/bin/env python および特別な __main__.py を持ち、Python アプリケーションのデプロイが cp と同じくらいシンプルにできるよう注意深く構築されている。

Spack

Docs | Github | Paper | Slides

柔軟なパッケージマネージャで、複数のバージョン、構成、プラットフォーム、コンパイラをサポートするよう設計されている。Spack は homebrew に似ているが、パッケージは Python で書かれており、またパラメータ化によってコンパイラ、ライブラリのバージョン、ビルドオプションなどを容易に交換できるようになっている。パッケージのバージョンがどれだけ多くても、それら全てが同じシステム上で共存できる。Spack はクラスタやスーパーコンピュータ上で高パフォーマンス科学アプリケーションを迅速に構築するために設計された。

Spack は PyPI には(まだ)入っていないが、インストールは不要で、github からクローンしてすぐ使える。

標準ライブラリプロジェクト

ensurepip

Docs | Issues

既存の Python 環境または仮想環境で pip のブートストラッピングをサポートする Python 標準ライブラリパッケージ。ほとんどの場合、エンドユーザがこのモジュールを使うことはなく、Python ディストリビューションのビルド中に使われる。

distutils

Docs | User list [2] | Issues | User irc:#pypa | Dev irc:#pypa-dev

distributions の作成とインストールをサポートする Python 標準ライブラリパッケージ。setuptools が distutils より強力な機能を提供しているので、distutils を単独で使うよりはそちらを使う方がはるかに一般的だ。

venv

Docs | Issues

仮想環境 を作るための Python 標準ライブラリパッケージ (Python 3.3 以降)。詳しくは、仮想環境の作成 のセクションを見よ。


[1]pip を作ったのは virtualenv と同じ開発者で、早い段階で virtualenv メーリングリストを使うことにした。以来ずっとその状態が続いている。
[2](1, 2, 3, 4, 5, 6, 7, 8) 複数のプロジェクトが distutils-sig メーリングリストをユーザ用として再利用している。