Κάθε φορά που προσπαθώ να εγκαταστήσω οποιοδήποτε πακέτο χρησιμοποιώντας 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>,
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
.
Ελέγξτε αν η pip έχει αποθηκευτεί σε άλλη διαδρομή, για να το κάνετε αυτό, καλέστε $ which pip και ελέγξτε ότι η διαδρομή είναι διαφορετική από αυτή που ζητείται στο σφάλμα, αν είναι έτσι, εκτελέστε:
$ hash -r
Όταν καθαρίσει η προσωρινή μνήμη, το pip θα λειτουργεί ξανά. αναφορά: http://cheng.logdown.com/posts/2015/06/14/-usr-bin-pip-no-such-file-or-directory
Χρησιμοποιώ το 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 <module>
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 <command> [options]