Γιατί το pip κατεβάζει εξαρτήσεις κατασκευής πριν εγκαταστήσει το πακέτο σας
Ένα πακέτο πηγαίου κώδικα μπορεί να απαιτεί περιβάλλον κατασκευής και πρόσθετες εξαρτήσεις. Αυτές οι λήψεις είναι μέρος της εγκατάστασης ακόμη και όταν το αρχείο προορισμού είναι ήδη τοπικό.
Ένα τοπικό αρχείο πηγαίου κώδικα μπορεί παρ' όλα αυτά να απαιτεί πρόσβαση στο δίκτυο. Πριν το pip μπορέσει να το εγκαταστήσει, μπορεί να χρειάζεται ένα backend κατασκευής και υποστηρικτικά πακέτα για να παραγάγει ένα wheel.
Εντοπίστε την αποτυχία σε αυτή τη σειρά: ανάκτηση του αρχείου προορισμού, εγκατάσταση των απαιτήσεων κατασκευής, εκτέλεση του backend και μετά εγκατάσταση του πακέτου που προκύπτει. Τα hooks του backend μπορούν να ζητήσουν πρόσθετες απαιτήσεις κατασκευής· αυτές είναι ξεχωριστές από τις εξαρτήσεις χρόνου εκτέλεσης του πακέτου.
Προσδιορίστε το τεχνούργημα που χρειάζεται ακόμη το pip
Στο “Installing build dependencies”, καταγράψτε το πακέτο και το URL που απέτυχαν. Ελέγξτε το ενεργό index, τη διαδρομή μέσω proxy, το πλαίσιο του λογαριασμού και την εμπιστοσύνη για αυτό το αίτημα, χρησιμοποιώντας τις τεκμηριωμένες ρυθμίσεις της εγκατεστημένης έκδοσης pip. Μια προηγούμενη επιτυχημένη λήψη δεν αποδεικνύει πρόσβαση σε κάθε host ή στο περιβάλλον κάθε βοηθητικού. Οι δημόσιες απαιτήσεις κατασκευής μπορούν να χρησιμοποιήσουν έναν υποψήφιο HTTP από τη λίστα proxy HTTP, όταν επιτρέπεται αυτή η διαδρομή· διατηρήστε το απαιτούμενο index και την πολιτική εμπιστοσύνης. Ιστορικές συνταγές λήψης με setup.py μπορούν να χρησιμοποιούν διαφορετικές υποδιεργασίες.
Αν ένα άλλο μηχάνημα εγκαθιστά με επιτυχία, συγκρίνετε πρώτα τα επιλεγμένα τεχνήματα. Η έκδοση Python ή η πλατφόρμα του μπορεί να έχει ένα συμβατό προκατασκευασμένο wheel, ενώ αυτό το μηχάνημα επέλεξε ένα πακέτο πηγαίου κώδικα και επομένως χρειάζεται εργαλεία κατασκευής.
Παρέχετε το περιβάλλον κατασκευής σκόπιμα
--no-build-isolation μεταφέρει σε εσάς την ευθύνη για τις απαραίτητες εξαρτήσεις κατασκευής. Δεν διορθώνει τον έλεγχο ταυτότητας proxy ούτε την εμπιστοσύνη στο πιστοποιητικό. Ένα τοπικά εγκατεστημένο backend μπορεί να κρύψει μια απούσα ή ασύμβατη απαίτηση.
Για μια σκόπιμα εκτός σύνδεσης κατασκευή, προετοιμάστε το τεχνούργημα προορισμού, τις απαιτήσεις κατασκευής και τα απαραίτητα εργαλεία για το έργο και την πλατφόρμα μέσω της εγκεκριμένης διαδικασίας. Ένας κατάλογος που περιέχει μόνο το αρχείο πηγαίου κώδικα είναι ελλιπής. Διατηρήστε την αποτυχημένη απαίτηση και το στάδιο στην αναφορά ώστε να μπορεί να διορθωθεί είτε η διαδρομή είτε το προετοιμασμένο σύνολο τεχνημάτων.