Πώς να διορθώσετε το σφάλμα ModuleNotFoundError: Δεν υπάρχει ενότητα με το όνομα 'pip' στην Python 3

ModuleNotFoundError: No module named 'pip'σημαίνει ότι ο διερμηνέας Python που εκτελεί την εντολή σας δεν μπορεί να εισαγάγει το πακέτο pip. Η αιτία είναι συνήθως μία από τις ακόλουθες τέσσερις αιτίες: το pip δεν εκκινήθηκε ποτέ, χρησιμοποιείτε διαφορετική εγκατάσταση Python από αυτήν που νομίζετε, δημιουργήθηκε ένα εικονικό περιβάλλον χωρίς pip ή καταστράφηκε ή ο διανομέας Linux σας διαχειρίζεται το pip ξεχωριστά από την βασική εγκατάσταση Python.

Η ασφαλέστερη επιδιόρθωση είναι να εργαστείτε από τον διερμηνέα προς τα έξω. Αρχικά, προσδιορίστε το ακριβές εκτελέσιμο αρχείο Python, στη συνέχεια δοκιμάστε την ενσωματωμένη ensurepipενότητα της Python και μεταβείτε σε έναν διαχειριστή πακέτων λειτουργικού συστήματος ή μόνο get-pip.pyόταν η ενσωματωμένη μέθοδος δεν είναι διαθέσιμη. Η επίσημη τεκμηρίωση pip συνιστά την κλήση του pip ως ενότητας— python -m pipσε συστήματα τύπου Unix ή py -m pipσε Windows—επειδή αυτό συνδέει το pip με έναν συγκεκριμένο διερμηνέα.

Γρήγορη αναφορά: επιλέξτε τη σωστή λύση

Αυτό που βλέπειςΚαλύτερη πρώτη δράσηΓιατί
python -m pipλέει ότι δεν υπάρχει ενότητα με όνομα pipΤρέξιμοpython -m ensurepip --upgradeΤο CPython μπορεί να εκκινήσει το ενσωματωμένο pip χωρίς να το κατεβάσει
pipλειτουργεί, αλλά python -m pipαποτυγχάνειΈλεγχος sys.executableκαι εκτελέσιμες διαδρομέςΠιθανότατα αναμειγνύετε εγκαταστάσεις Python
No module named ensurepipΧρησιμοποιήστε τον διαχειριστή πακέτων του διανομέα σας ή επιδιορθώστε την εγκατάσταση της Pythonensurepipείναι προαιρετικό και οι διανομείς μπορούν να το παραλείψουν
Λείπει το pip από ένα εικονικό περιβάλλονΚάντε Bootstrap pip μέσα σε αυτό ή αναδημιουργήστε το περιβάλλονvenvκανονικά εγκαθιστά το pip εκτός αν --without-pipχρησιμοποιήθηκε
externally-managed-environmentεμφανίζεται στο LinuxΔημιουργήστε ένα εικονικό περιβάλλονΤο σύστημα Python διαχειρίζεται σκόπιμα από τον διαχειριστή πακέτων λειτουργικού συστήματος

Βήμα 1: Επιβεβαιώστε σε ποιον διερμηνέα Python λείπει το pip

Μην ξεκινήσετε επανεγκαθιστώντας τυχαία πακέτα. Αρχικά, ρωτήστε τον ίδιο διερμηνέα εάν υπάρχει το pip.

Παράθυρα

py --version
py -m pip --version
py -c "import sys; print(sys.executable)"
where python
where pip

macOS και Linux

python3 --version
python3 -m pip --version
python3 -c 'import sys; print(sys.executable)'
command -v python3
command -v pip3

Εάν μια αυτόνομη εντολή pipή pip3μια εντολή δείχνει σε μια εγκατάσταση ενώ το python, python3το πρόβλημα είναι μια ασυμφωνία διερμηνέα, όχι απαραίτητα μια εγκατάσταση pip που λείπει. Προτιμήστε τη φόρμα ενότητας που εμφανίζεται στον επίσημο οδηγό χρήστη pip .

Η γραμμή εντολών των Windows εμφανίζει το Python 3 και το ModuleNotFoundError μετά την προσπάθεια εισαγωγής pip.
Το σφάλμα σχετίζεται με τον διερμηνέα Python που εκτελείται αυτήν τη στιγμή. Προσδιορίστε αυτόν τον διερμηνέα πριν αλλάξετε την εγκατάστασή σας.

Σε macOS, το ίδιο σύμπτωμα μπορεί να εμφανιστεί στο Terminal όταν python3επιλυθεί σε μια εγκατάσταση Python που δεν περιέχει pip.

Τερματικό macOS που εμφανίζει Python 3 και ένα ModuleNotFoundError για το pip.
Σε macOS και Linux, χρησιμοποιήστε την εντολή python3 -m pipώστε η εντολή pip να είναι συνδεδεμένη με τον διερμηνέα Python 3 που σκοπεύετε να χρησιμοποιήσετε.

Βήμα 2: Επαναφορά pip με το ensurepip

Για μια κανονική εγκατάσταση CPython, ensurepipείναι η πρώτη μέθοδος επιδιόρθωσης που πρέπει να δοκιμάσετε. Η τεκμηρίωση της Python αναφέρει ότι η ενότητα bootstraps εκτελεί pip από στοιχεία που περιλαμβάνονται στον διερμηνέα και δεν χρειάζεται πρόσβαση στο διαδίκτυο για αυτό το βήμα bootstrap. Η ενότητα προστέθηκε στην Python 3.4.

Παράθυρα

py -m ensurepip --upgrade
py -m pip --version
py -m pip install --upgrade pip

macOS και Linux

python3 -m ensurepip --upgrade
python3 -m pip --version
python3 -m pip install --upgrade pip

Η πρώτη εντολή εγκαθιστά ή ανανεώνει την έκδοση pip που συνοδεύει την έκδοση Python. Η τελευταία εντολή μπορεί στη συνέχεια να ενημερώσει το pip από το διαμορφωμένο ευρετήριο πακέτου του. Ανατρέξτε στην τεκμηρίωση της Pythonensurepip και στον επίσημο οδηγό εγκατάστασης pip .

Τερματικό Linux που εμφανίζει το python3 ensurepip ακολουθούμενο από έναν επιτυχή έλεγχο έκδοσης python3 -m pip.
Μια επιτυχημένη ensurepipεκτέλεση θα πρέπει να ακολουθείται από έλεγχο έκδοσης χρησιμοποιώντας τον ίδιο διερμηνέα Python.

Βήμα 3: Εάν λείπει το ensurepip, χρησιμοποιήστε τη μέθοδο που είναι κατάλληλη για τον χρήστη που εγκατέστησε την Python.

Η τρέχουσα τεκμηρίωση της Python αναφέρει ρητά ότι αυτό ensurepipείναι προαιρετικό. Εάν το αντίγραφο του CPython που διαθέτετε δεν το περιλαμβάνει, η Python συνιστά να συμβουλευτείτε τον διανομέα που παρείχε αυτόν τον διερμηνέα. Αυτό είναι ιδιαίτερα σημαντικό στο Linux, όπου το λειτουργικό σύστημα μπορεί σκόπιμα να συσκευάσει το pip ξεχωριστά.

Ubuntu ή σύστημα τύπου Debian Python

Για το Ubuntu, το επίσημο αρχείο πακέτων παρέχει ένα python3-pipπακέτο. Μια τυπική εγκατάσταση πακέτου συστήματος είναι:

sudo apt update
sudo apt install python3-pip python3-venv

Στη συνέχεια, επαληθεύστε με:

python3 -m pip --version

Χρησιμοποιήστε την τεκμηρίωση του πακέτου της διανομής σας αντί να αντιγράψετε μια aptεντολή σε μια διανομή που δεν είναι Debian. Η σελίδα πακέτου Ubuntu για το python3-pip επιβεβαιώνει ότι το πακέτο διανέμεται ξεχωριστά.

Η Python εγκαταστάθηκε από το python.org

Εάν μια επίσημη εγκατάσταση του python.org είναι κατεστραμμένη και ensurepipδεν είναι διαθέσιμη απροσδόκητα, η επιδιόρθωση ή η επανεγκατάσταση αυτής της εγκατάστασης Python είναι συχνά πιο εύκολη από την χειροκίνητη επιδιόρθωση αρχείων. Κάντε λήψη μόνο από την επίσημη σελίδα λήψεων Python .

Μια οθόνη εγκατάστασης Python για Windows που εμφανίζει την επιλογή τυπικής εγκατάστασης και το πλαίσιο ελέγχου PATH.
Μια κλασική προβολή προγράμματος εγκατάστασης Python για Windows απεικονίζει τη διαδρομή επιδιόρθωσης ή επανεγκατάστασης. Οι διαθέσιμες εκδόσεις και τα στοιχεία ελέγχου του προγράμματος εγκατάστασης ενδέχεται να διαφέρουν ανάλογα με την έκδοση της Python.

Τι γίνεται με το get-pip.py;

Οι συντηρητές pip αναφέρονται get-pip.pyως υποστηριζόμενος μηχανισμός εγκατάστασης όταν απουσιάζει το pip. Ο Οδηγός Χρήσης Python Packaging συνιστά να δοκιμάσετε ensurepipπρώτα και προειδοποιεί ότι get-pip.pyδεν συντονίζεται με τους διαχειριστές πακέτων του λειτουργικού συστήματος. Αυτή η προειδοποίηση έχει σημασία για εγκαταστάσεις Python που διαχειρίζονται από διανομείς.

Εάν χρησιμοποιείτε σκόπιμα το bootstrap script, αποκτήστε το μόνο από την τοποθεσία που συνδέεται με την επίσημη τεκμηρίωση εγκατάστασης του pip . Μην χρησιμοποιείτε τυχαίο αντίγραφο από φόρουμ, γενικές πληροφορίες ή ιστότοπο λήψεων τρίτου μέρους.

Βήμα 4: Επιδιόρθωση εικονικού περιβάλλοντος αντί τροποποίησης του συστήματος Python

Η ενότητα της Python venvεγκαθιστά το pip από προεπιλογή, εκτός εάν το περιβάλλον δημιουργήθηκε με --without-pip. Εάν ένα υπάρχον περιβάλλον είναι αναλώσιμο, η αναδημιουργία του είναι συχνά ταχύτερη και πιο αναπαραγώγιμη από την προσπάθεια επιδιόρθωσης ενός μερικώς κατεστραμμένου καταλόγου πακέτων.

Παράθυρα

py -m venv .venv
.venv\Scriptsctivate
python -m pip --version

macOS και Linux

python3 -m venv .venv
source .venv/bin/activate
python -m pip --version

Εάν το περιβάλλον υπάρχει ήδη και πρέπει να το διατηρήσετε, ενεργοποιήστε το και δοκιμάστε:

python -m ensurepip --upgrade
python -m pip install --upgrade pip

Η επίσημη venvτεκμηρίωση αναφέρει ότι ensurepipχρησιμοποιείται για την εκκίνηση του pip σε νέα περιβάλλοντα από προεπιλογή.

Τερματικό που δείχνει τη δημιουργία και την ενεργοποίηση ενός περιβάλλοντος dot-venv ακολουθούμενη από έλεγχο έκδοσης pip και εγκατάσταση πακέτου.
Ένα νέο εικονικό περιβάλλον απομονώνει τα πακέτα έργων από τον διερμηνέα συστήματος και συνήθως περιλαμβάνει το δικό του pip.

Γιατί αυτό έχει σημασία στις σύγχρονες διανομές Linux

Το PEP 668 ορίζει τον EXTERNALLY-MANAGEDδείκτη που χρησιμοποιείται από τους διανομείς για να ενημερώνουν τους εγκαταστάτες πακέτων Python να μην τροποποιούν το καθολικό περιβάλλον πακέτου του διερμηνέα συστήματος από προεπιλογή. Εάν το pip αναφέρει ένα εξωτερικά διαχειριζόμενο περιβάλλον, αυτό είναι ένα διαφορετικό πρόβλημα από το "λείπει το pip". Το συνιστώμενο μοτίβο είναι συνήθως η δημιουργία ενός εικονικού περιβάλλοντος αντί για την επιβολή μιας καθολικής εγκατάστασης. Δείτε το PEP 668 .

Βήμα 5: Επαληθεύστε την επιδιόρθωση με τον ίδιο διερμηνέα που θα χρησιμοποιήσετε στην πραγματικότητα

Μετά από οποιαδήποτε επιδιόρθωση, επαληθεύστε τόσο το pip όσο και το πακέτο-στόχο σας από το ίδιο εκτελέσιμο αρχείο Python.

Παράθυρα

py -m pip --version
py -m pip install requests
py -c "import requests; print(requests.__version__)"

macOS και Linux

python3 -m pip --version
python3 -m pip install requests
python3 -c 'import requests; print(requests.__version__)'

Εάν εργάζεστε μέσα σε ένα IDE ή ένα σημειωματάριο, ελέγξτε επίσης τον διερμηνέα που έχει επιλεγεί από αυτό το εργαλείο. Ένα συνηθισμένο μοτίβο αποτυχίας είναι η εγκατάσταση πακέτων με ένα τερματικό Python ενώ ο επεξεργαστής εκτελεί μια άλλη Python ή ένα άλλο εικονικό περιβάλλον.

Επεξεργαστής κώδικα που εμφανίζει κώδικα Python που εκτυπώνει την έκδοση pip και το εκτελέσιμο Python, με επιτυχημένο αποτέλεσμα τερματικού.
Όταν ένα IDE εξακολουθεί να αναφέρει ότι λείπουν πακέτα, συγκρίνετε το εκτελέσιμο αρχείο Python με τον διερμηνέα που χρησιμοποιήθηκε για την επιτυχή εντολή pip.

Χρειάζεται όντως να εισάγετε pip στον κώδικα Python σας;

Συνήθως όχι. Η τεκμηρίωση του pip αναφέρει ότι το pip είναι ένα πρόγραμμα γραμμής εντολών και ότι τα εσωτερικά API του δεν υποστηρίζονται ως δημόσιο API Python. Παρόλο που import pipμπορεί να λειτουργήσει μετά την εγκατάσταση, ο κώδικας της εφαρμογής δεν θα πρέπει να εξαρτάται από τα εσωτερικά στοιχεία του pip.

Εάν ένα σενάριο χρειάζεται πραγματικά να καλέσει το pip, η τεκμηρίωση του pip συνιστά την εκκίνησή του ως δευτερεύουσα διεργασία με τον τρέχοντα διερμηνέα:

import subprocess
import sys

subprocess.check_call([
    sys.executable,
    "-m",
    "pip",
    "install",
    "SomePackage",
])

Δείτε την ενότητα Χρήση του pip από το πρόγραμμά σας στον επίσημο οδηγό χρήσης του pip .

Συνηθισμένα λάθη που διατηρούν ζωντανό το σφάλμα

  • Εκτέλεση pip install pipόταν το pip λείπει ήδη: χρησιμοποιήστε ensurepipπρώτα το , έναν διαχειριστή πακέτων λειτουργικού συστήματος ή την επίσημη μέθοδο bootstrap.
  • Χρήση sudo pipσε Python με διανομέα: αυτό μπορεί να έρχεται σε σύγκρουση με την ιδιοκτησία του πακέτου του λειτουργικού συστήματος. Προτιμήστε ένα εικονικό περιβάλλον.
  • Διόρθωση του PATH όταν η ίδια η ενότητα απουσιάζει: Το PATH ελέγχει εάν ένα κέλυφος βρίσκει ένα εκτελέσιμο αρχείο. Δεν εγκαθιστά τη pipενότητα σε έναν διερμηνέα Python.
  • Εγκατάσταση σε λάθος έκδοση Python: χρησιμοποιήστε python -m pip, python3 -m pip, ή py -m pipαντί να υποθέσετε ότι μια απλή pipεντολή στοχεύει τον σωστό διερμηνέα.
  • Επαναχρησιμοποίηση ενός μετακινημένου εικονικού περιβάλλοντος: Η τεκμηρίωση venv της Python περιγράφει τα περιβάλλοντα ως αναλώσιμα και γενικά όχι φορητά. Δημιουργήστε ξανά ένα μετακινημένο περιβάλλον αντί να προσπαθήσετε να επιδιορθώσετε διαδρομές με σκληρό κώδικα.

Τελική λίστα ελέγχου για το τελικό αποτέλεσμα.

  • Επιβεβαιώστε το ακριβές εκτελέσιμο αρχείο Python με sys.executable.
  • Εκτελέστε το pip μέσω αυτού του διερμηνέα με -m pip.
  • Δοκιμάστε το ensurepip --upgradeπριν κατεβάσετε κάποιο άλλο εργαλείο bootstrap.
  • Εάν ensurepipδεν είναι διαθέσιμο, ακολουθήστε τις οδηγίες διαχείρισης πακέτων του διανομέα.
  • Χρησιμοποιήστε ένα εικονικό περιβάλλον για εξαρτήσεις έργων, ειδικά σε εξωτερικά διαχειριζόμενες εγκαταστάσεις Linux.
  • Επαληθεύστε το αποτέλεσμα από το ίδιο τερματικό, IDE, σημειωματάριο ή περιβάλλον εκτέλεσης υπηρεσίας που εκτελεί το έργο σας.

Για τις περισσότερες τυπικές εγκαταστάσεις Python 3, η συντομότερη αξιόπιστη επιδιόρθωση python -m ensurepip --upgradeακολουθείται από το python -m pip --version, αντικαθιστώντας το python3σε συστήματα τύπου Unix ή pyσε Windows, ανάλογα με την περίπτωση. Εάν αυτό αποτύχει επειδή ensurepipλείπει, διακόψτε και προσδιορίστε ποιος προμήθευσε την εγκατάσταση Python πριν επιλέξετε την επόμενη μέθοδο επιδιόρθωσης.

Αφήστε ένα σχόλιο

Πώς να διορθώσετε το σφάλμα "Τα στυλ CSS Tailwind δεν ενημερώνονται" σε μια εφαρμογή Vite React

Πώς να διορθώσετε το σφάλμα "Τα στυλ CSS Tailwind δεν ενημερώνονται" σε μια εφαρμογή Vite React

Διορθώστε τα στυλ CSS του Tailwind που δεν ενημερώνονται στο Vite React ελέγχοντας τη ρύθμιση του Tailwind v4, τις εισαγωγές CSS, την ανίχνευση πηγαίου κώδικα, τις δυναμικές κλάσεις, το HMR και τις παλιές προσωρινές μνήμες.

Πώς να διορθώσετε το σφάλμα ModuleNotFoundError: Δεν υπάρχει ενότητα με το όνομα 'pip' στην Python 3

Πώς να διορθώσετε το σφάλμα ModuleNotFoundError: Δεν υπάρχει ενότητα με το όνομα 'pip' στην Python 3

Διορθώστε το σφάλμα ModuleNotFoundError της Python 3 για το pip σε Windows, macOS και Linux με το ensurepip, πακέτα λειτουργικού συστήματος, εικονικά περιβάλλοντα και ελέγχους διερμηνέα.

Πώς να διορθώσετε το σφάλμα "Άρνηση άδειας (δημόσιο κλειδί)" στο GitHub SSH

Πώς να διορθώσετε το σφάλμα "Άρνηση άδειας (δημόσιο κλειδί)" στο GitHub SSH

Διορθώστε το πρόβλημα "Απόρριψη άδειας SSH GitHub (publickey)" ελέγχοντας τον κεντρικό υπολογιστή, το ενεργό κλειδί SSH, τον λογαριασμό GitHub, την εξουσιοδότηση SSO, την απομακρυσμένη διεύθυνση URL και την πρόσβαση στη θύρα 22.

Πώς να διορθώσετε το σφάλμα "Git Push Rejected: Non-Fast-Forward" χωρίς να χάσετε αλλαγές

Πώς να διορθώσετε το σφάλμα "Git Push Rejected: Non-Fast-Forward" χωρίς να χάσετε αλλαγές

Διορθώστε με ασφάλεια μια μη γρήγορη προώθηση σε Git. Προστατέψτε την τοπική εργασία, ανακτήστε απομακρυσμένες υποβολές, επιλέξτε συγχώνευση ή αλλαγή βάσης, επιλύστε διενέξεις και προωθήστε χωρίς να χάσετε αλλαγές.

Πώς να διορθώσετε το σφάλμα "Nginx 502 Bad Gateway" κατά τη μεσολάβηση στο Node.js

Πώς να διορθώσετε το σφάλμα "Nginx 502 Bad Gateway" κατά τη μεσολάβηση στο Node.js

Διορθώστε τα σφάλματα Nginx 502 Bad Gateway με ένα Node.js upstream ελέγχοντας τη θύρα εφαρμογής, τα αρχεία καταγραφής NGINX, τη διεύθυνση proxy_pass, τη δικτύωση κοντέινερ, τα χρονικά όρια και την επαναφόρτωση.

How to Fix “Type 'null' Is Not Assignable to Type” in TypeScript

How to Fix “Type 'null' Is Not Assignable to Type” in TypeScript

Fix TypeScript's “Type 'null' is not assignable to type” error with union types, narrowing, defaults, and safe assertions under strictNullChecks.

Πώς να διορθώσετε το σφάλμα «Το Prisma Client δεν έχει δημιουργηθεί ακόμη»

Πώς να διορθώσετε το σφάλμα «Το Prisma Client δεν έχει δημιουργηθεί ακόμη»

Διορθώστε το σφάλμα μη δημιουργημένου Prisma Client ελέγχοντας τον generator, το schema, τη διαδρομή εξόδου, τα imports, τις εκδόσεις, τη ρύθμιση monorepo και τα βήματα build της ανάπτυξης.

Πώς να διορθώσετε το σφάλμα "ERR_MODULE_NOT_FOUND" στις εισαγωγές ESM του Node.js

Πώς να διορθώσετε το σφάλμα "ERR_MODULE_NOT_FOUND" στις εισαγωγές ESM του Node.js

Διορθώστε το σφάλμα Node.js ERR_MODULE_NOT_FOUND στο ESM ελέγχοντας τις διαδρομές εισαγωγής, τις επεκτάσεις αρχείων, την εγκατάσταση πακέτων, τις εξαγωγές, τη λειτουργία ESM και τις καθαρές εγκαταστάσεις.

Πώς να διορθώσετε το πρόβλημα πιστοποιητικού SSL: Unable to Get Local Issuer Certificate στο Git

Πώς να διορθώσετε το πρόβλημα πιστοποιητικού SSL: Unable to Get Local Issuer Certificate στο Git

Διορθώστε το σφάλμα του Git «unable to get local issuer certificate» εντοπίζοντας το backend εμπιστοσύνης, εγκαθιστώντας τη σωστή αλυσίδα CA και διατηρώντας ενεργή την επαλήθευση SSL.

Πώς να διορθώσετε το σφάλμα λήξης χρόνου δικτύου του MongoDB στη σύνδεση Mongoose

Πώς να διορθώσετε το σφάλμα λήξης χρόνου δικτύου του MongoDB στη σύνδεση Mongoose

Διορθώστε τα σφάλματα λήξης χρόνου δικτύου του MongoDB στο Mongoose εντοπίζοντας τον τύπο λήξης, ελέγχοντας την προσβασιμότητα Atlas ή TCP, διορθώνοντας το URI και ρυθμίζοντας τα timeouts μόνο όταν δικαιολογείται.