Σφάλμα μετά την αναβάθμιση του pip: δεν είναι δυνατή η εισαγωγή του ονόματος 'main&#39,

Κάθε φορά που προσπαθώ να εγκαταστήσω οποιοδήποτε πακέτο χρησιμοποιώντας pip, λαμβάνω αυτό το σφάλμα εισαγωγής:

guru@guru-notebook:~$ pip3 install numpy
Traceback (most recent call last):
  File "/usr/bin/pip3", line 9, in <module>
    from pip import main
ImportError: cannot import name 'main'

<br&gt,

guru@guru-notebook:~$ cat `which pip3`
#!/usr/bin/python3
# GENERATED BY DEBIAN

import sys

# Run the main entry point, similarly to how setuptools does it, but because
# we didn't install the actual entry point from setup.py, don't use the
# pkg_resources API.
from pip import main
if __name__ == '__main__':
    sys.exit(main())

Δούλευε μια χαρά νωρίτερα, δεν είμαι σίγουρος γιατί πετάει αυτό το σφάλμα. Έχω ψάξει για αυτό το σφάλμα, αλλά δεν μπορώ να βρω τίποτα για να το διορθώσω.

Παρακαλώ ενημερώστε με αν χρειάζεστε περισσότερες λεπτομέρειες, θα ενημερώσω την ερώτησή μου.

Λύση

Θα πρέπει να έχετε αναβαθμίσει κατά λάθος το σύστημα pip σας (πιθανώς μέσω κάτι σαν sudo pip install pip pip --upgrade)

Το pip 10.x προσαρμόζει το πού βρίσκονται τα εσωτερικά του. Η εντολή pip3 που βλέπετε είναι μια που παρέχεται από τον συντηρητή του πακέτου σας (πιθανώς με βάση το debian εδώ;) και δεν είναι ένα αρχείο που διαχειρίζεται το pip.

Μπορείτε να διαβάσετε περισσότερα σχετικά με αυτό στο pip's issue tracker

Πιθανόν να θέλετε να μην αναβαθμίσετε το pip του συστήματός σας και αντ' αυτού να χρησιμοποιήσετε ένα virtualenv.

Για να ανακτήσετε το δυαδικό αρχείο pip3 θα πρέπει να κάνετε sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall.

Αν θέλετε να συνεχίσετε σε "μη υποστηριζόμενη περιοχή" (αναβάθμιση ενός πακέτου συστήματος εκτός του διαχειριστή πακέτων του συστήματος), μπορείτε πιθανώς να ξεφύγετε με την επιλογή python3 -m pip ... αντί για pip3.

Σχόλια (17)

Ελέγξτε αν η pip έχει αποθηκευτεί σε άλλη διαδρομή, για να το κάνετε αυτό, καλέστε $ which pip και ελέγξτε ότι η διαδρομή είναι διαφορετική από αυτή που ζητείται στο σφάλμα, αν είναι έτσι, εκτελέστε:

$ hash -r

Όταν καθαρίσει η προσωρινή μνήμη, το pip θα λειτουργεί ξανά. αναφορά: http://cheng.logdown.com/posts/2015/06/14/-usr-bin-pip-no-such-file-or-directory

Σχόλια (0)

Χρησιμοποιώ το sudo apt remove python3-pip και μετά το pip λειτουργεί.

 ~ sudo pip install pip --upgrade
[sudo] password for sen: 
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in 
    from pip import main
ImportError: cannot import name 'main'
➜  ~ sudo apt remove python3-pip   
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  libexpat1-dev libpython3-dev libpython3.5-dev python-pip-whl python3-dev python3-wheel
  python3.5-dev
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
  python3-pip
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 569 kB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database ... 215769 files and directories currently installed.)
Removing python3-pip (8.1.1-2ubuntu0.4) ...
Processing triggers for man-db (2.7.5-1) ...
➜  ~ pip

Usage:   
  pip  [options]
Σχόλια (1)