pyenv のダウンローダーがプロキシ経由で Python のソースアーカイブを取得できないとき、python-build のキャッシュ経由でアーカイブを渡せます。

  1. 失敗したビルドが要求した URL と正確なアーカイブのファイル名を確認します。
  2. 同じファイルを、動作している承認済みのダウンロード経路で入手します。ファイル名はそのままにします。.zip は要求された .tar.xz の代わりにはなりません。
  3. それをキャッシュディレクトリに置き、再試行でそのディレクトリを指定します。
PYTHON_BUILD_CACHE_PATH=/path/to/archive-cache pyenv install VERSION

VERSION を選択した定義に置き換えます。pyenv は通常キャッシュディレクトリがあればそれを使います。PYTHON_BUILD_CACHE_PATH は選んだ場所を明示します。

定義がチェックサムを宣言している場合、python-build はキャッシュされたバイトをそれと照合します。ファイル名が一致するだけでは足りません。

再試行がこのアーカイブを通過したあとに別のダウンロードを試す場合は、新しく要求されたパッケージを調べます。定義は Python のアーカイブ以上のものを必要とすることがあり、マシンにはビルドツールとライブラリも依然として必要です。ひとつのファイルを完全なオフラインビルドとみなすのではなく、実際の要求に合わせてキャッシュを埋めてください。

代わりに通常のダウンロードに戻すには、python-build が選んだダウンローダーを特定して設定します。キャッシュしたファイルを取得したブラウザーは別のプロキシ設定かもしれません。

関連記事