Mengapa pip mengunduh dependensi build sebelum memasang paket Anda
Distribusi sumber dapat memerlukan lingkungan build dan dependensi tambahan. Unduhan tersebut adalah bagian dari instalasi meskipun arsip target sudah ada secara lokal.
Arsip sumber lokal tetap dapat memerlukan akses jaringan. Sebelum pip dapat memasangnya, pip mungkin memerlukan build backend dan paket pendukung untuk menghasilkan wheel.
Temukan kegagalan pada urutan ini: pengambilan arsip target, pemasangan persyaratan build, eksekusi backend, lalu pemasangan paket yang dihasilkan. Hook backend dapat meminta persyaratan build tambahan; itu terpisah dari dependensi runtime paket.
Identifikasi artefak yang masih dibutuhkan pip
Pada “Installing build dependencies,” catat paket dan URL yang gagal. Periksa indeks efektif, rute proxy, konteks akun, dan kepercayaan untuk permintaan itu, menggunakan pengaturan terdokumentasi dari versi pip yang terpasang. Unduhan sukses sebelumnya tidak membuktikan akses ke setiap host atau lingkungan setiap pembantu. Persyaratan build publik dapat memakai kandidat HTTP dari daftar proxy HTTP bila rute itu diizinkan; pertahankan indeks dan kebijakan kepercayaan yang diperlukan. Resep unduhan historis dengan setup.py dapat memakai subproses berbeda.
Jika mesin lain berhasil memasang, bandingkan dulu artefak yang dipilih. Versi Python atau platformnya mungkin memiliki wheel siap-pakai yang kompatibel, sedangkan mesin ini memilih distribusi sumber sehingga memerlukan perkakas build.
Sediakan lingkungan build secara sengaja
--no-build-isolation memindahkan tanggung jawab atas dependensi build yang diperlukan kepada Anda. Ini tidak memperbaiki autentikasi proxy atau kepercayaan sertifikat. Backend yang terpasang secara lokal dapat menyembunyikan persyaratan yang hilang atau tidak kompatibel.
Untuk build yang sengaja offline, siapkan artefak target, persyaratan build, dan perkakas yang diperlukan untuk proyek dan platform melalui proses yang disetujui. Direktori yang hanya berisi arsip sumber tidak lengkap. Simpan persyaratan dan tahap yang gagal dalam laporan agar rute atau kumpulan artefak yang disiapkan dapat diperbaiki.