パッケージインデックスのミラーとキャッシュ#

ページステイタス:

未完了

最終査読日:

2014-12-24

PyPIのミラーやキャッシュがあると、手元でパッケージをインストールするのが速くなったり、オフラインでインストールできたり、会社のファイアウォール経由でもできたり、あるいは、単純にインターネットがあてにならなくてもインストールできたりします。

この分野には3個のやり方があります:

  1. pip はローカルキャッシュのオプションを提供し、

  2. devpi は、潜在的には多数のユーザやマシンをまたがって共有できるような高レベルのキャッシュのオプションを提供し、

  3. bandersnatch は、PyPIのすべての パッケージ の完全なミラー(複製)を手元に置くオプションを提供します。

pipによるキャッシュ#

pip は、 パッケージ のローカルキャッシュを使って素早くインストールするためのいくつもの機能を提供します。

  1. あるプロジェクトの依存先パッケージをすべてダウンロードし、 pip を PyPI の代わりにそれらダウンロード済みファイルに向けることによる 速くてローカルなインストール

  2. python -m pip wheel を用いて依存先パッケージのインストール用ファイルをあらかじめビルドしておくという上記のバリエーション:

    python3 -m pip wheel --wheel-dir=/tmp/wheelhouse SomeProject
    python3 -m pip install --no-index --find-links=/tmp/wheelhouse SomeProject
    

devpiでのキャッシュ#

devpi は、キャッシュ機能付きのプロクシサーバで、あなたのラップトップやあなたがいつでも使えるとわかっているどこかの機体の上で動作させます。 devpi の始め方 を見てください。

bandersnatch で完全なミラーを作る#

bandersnatch は、すべての PyPI パッケージ (外部にホストされているパッケージはミラーされません)の完全なローカルミラーを構築します。 bandersnatch を走らせるには を見てください。

devpi の利点は、 PyPI の外部にある パッケージ を含むミラーを作成できることで、これはPyPI にホストされている パッケージ だけをキャッシュする bandersnatch とは異なる点です。