tox 4 の文書化された既定のパススルーには http_proxy、https_proxy、no_proxy、PIP_* が含まれます。pip がターミナルで動作するのに tox のセットアップ中に失敗する場合、パススルーの欠落は考えられる説明のひとつにすぎません。

ダウンローダーの入力を比較する

失敗しているプロセスが見ているエンドポイントとバイパスの値を、明示的な tox のオーバーライドや環境ファイルも含めて確認してください。プロジェクトが正しく継承された値を古い値で置き換えていることがあります。my_https_proxy のような独自の名前は、ダウンローダーが使う前に明示的なマッピングが必要です。

段階を特定してください。環境の作成、パッケージング、依存関係のインストール、またはテスト環境内のコマンドです。それぞれ異なるプロセスと設定が関与します。

Python と pip のバージョン、および永続的な設定も比較してください。tox は証明書の扱いが異なる環境を作ることがあるため、TLS の信頼エラーだけではプロキシ変数の欠落の十分な証拠にはなりません。

必要なオーバーライドを適用する

インストールされている tox のバージョンが対応する環境設定と通常のシークレット機構を使ってください。pip のラッパーは、必要なマッピングをそこに十分に表現できない場合にのみ有用です。また、引数の転送、終了ステータス、プラットフォームの挙動も正しくある必要があります。

実際に失敗したプロセスの入力を、認証情報を除いてレポートに残してください。プロジェクトや tox のバージョンが変わったときに再現可能な比較ができます。

関連記事