Uszkodzona instalacja Python3 pip3 na Ubuntu


14

Z powodzeniem zainstalowałem Python3 i pip3 na moim Ubuntu16.04, ale instalacja pip3 jest zepsuta. Jak mogę rozwiązać ten problem? Informacje o błędzie pip3 installsą następujące:

# pip3 install xlwt
Traceback (most recent call last):
File "/usr/bin/pip3", line 9, in <module>
  from pip import main
File "/usr/lib/python3/dist-packages/pip/__init__.py", line 21, in <module>
  from pip._vendor.requests.packages.urllib3.exceptions import DependencyWarning
ModuleNotFoundError: No module named 'pip._vendor.requests'

Wyjście z sudo -H pip3 install --upgrade pip

sudo -H pip3 install --upgrade pip  
Traceback (most recent call last):
File "/usr/bin/pip3", line 9, in <module>
  from pip import main
File "/usr/lib/python3/dist-packages/pip/__init__.py", line 21, in <module>
  from pip._vendor.requests.packages.urllib3.exceptions import DependencyWarning
ModuleNotFoundError: No module named 'pip._vendor.requests'

Wyjście which pip3i pip3 --version:

# which pip3
/usr/bin/pip3

# pip3 --version
Traceback (most recent call last):
  File "/usr/bin/pip3", line 9, in <module>
    from pip import main
  File "/usr/lib/python3/dist-packages/pip/__init__.py", line 21, in <module>
    from pip._vendor.requests.packages.urllib3.exceptions import DependencyWarning
ModuleNotFoundError: No module named 'pip._vendor.requests'

Pip PS Python2 działa poprawnie. Wyjście „what pip” i „pip --version”:

# which pip
/usr/bin/pip

# pip --version
pip 1.5.4 from /usr/local/lib/python2.7/dist-packages/pip-1.5.4-py2.7.egg (python 2.7)

Oraz informacje o instalacji Python i Python3:

# which python
/usr/bin/python
# which python3
/usr/bin/python3

# python -V
Python 2.7.14
# python3 -V
Python 3.6.3  

W swoim poście powiedziałeś 16.04, ale użyłeś tagu 14.04. Która wersja jest poprawna?
edwinksl

1
16.04 jest poprawny. Nie mogłem teraz znaleźć tagu 16.04. Przepraszam.
mlpy

Odpowiedzi:


12

Coś jest nie tak z pip3, więc usuń go i zainstaluj ponownie. Otwórz terminal i wpisz:

sudo apt purge python3-pip  
sudo rm -rf '/usr/lib/python3/dist-packages/pip'  
sudo apt install python3-pip   
cd
cd .local/lib/python3/site-packages
sudo rm -rf pip*  
cd
cd .local/lib/python3.5/site-packages
sudo rm -rf pip*  
python3 -m pip install --user xlwt

3
Próbowałem, ale wciąż ten sam błąd: imgur.com/a/nAdqU .
mlpy

Wypróbowałem nowe rozwiązanie, ale wciąż ten sam błąd.
mlpy

Mam też ten sam problem. Kiedy to robię sudo apt install python3-pip, The following packages have unmet dependencies: python3-pip : Depends: python-pip-whl (= 8.1.1-2) but 8.1.1-2ubuntu0.4 is to be installed Recommends: build-essential but it is not going to be installed Recommends: python3-dev (>= 3.2) but it is not going to be installed Recommends: python3-wheel but it is not going to be installed E: Unable to correct problems, you have held broken packages.
pojawia się

@ Kristada673 Spróbuj przeczytać odpowiedzi na to pytanie: askubuntu.com/questions/363200/… . Odpowiedź DragonLorda zadziałała dla mnie.
karel

6

Instalując pakiet python3-pip utwórz skrypt python w pliku / usr / bin / pip3. Aby uruchomić, należy zaimportować funkcję main () z modułu pip ( from pip import main). Ta ścieżka metody jest dostępna tylko dla paczkowanej wersji pip (w moim przypadku 9.0.1).

Po uruchomieniu pip3 install --upgrade pipwersja PIP staje się 18.1, a main () został przeniesiony pip._internal.

Użyj polecenia, python3 -m pip --versionaby sprawdzić, czy twoja sprawa odpowiada tej samej sytuacji (pip3 jest również dostępny z tą metodą, gdy /usr/bin/pip3jest uszkodzony).

Jeśli tak, w pliku / usr / bin / pip3 zamień wiersz 9: na from pip import main : from pip._internal import main

Problem zostanie rozwiązany. (Testowane na dystrybucji Ubuntu 18.04)


Po zmianie importu pojawia się inny błądFile "/usr/bin/pip3", line 11, in <module> sys.exit(main()) TypeError: 'module' object is not callable
Miranda

2

Oto, co uważam za pomocne:

  1. sudo rm -rf /usr/local/lib/python3.5/dist-packages
  2. Nigdy nie biegnij pip3w środku sudo.

Chociaż może to rozwiązuje problemy, czy możesz rozwinąć swoją odpowiedź? Po co usuwać ten katalog (może dodać zastrzeżenie dotyczące python3.5ścieżki), dlaczego nigdy nie uruchamiać go za pomocą sudo itd.
Robert Riedl

Nie jestem do końca ekspertem w tej dziedzinie - chciałem tylko podzielić się tym, co dla mnie zadziałało.
Jan Lachnitt


1

Najpierw usuń zepsuty pip3:

rm /user/bin/pip3 /user/local/bin/pip3

Zainstaluj ponownie nowy:

sudo apt-get remove python3-pip
sudo apt-get install python3-pip


0

Jak wspomniał @Vincent H., napotkałem ten sam problem.

Traceback (ostatnie ostatnie połączenie): Plik „/home/ashish/.local/bin/pip3”, wiersz 7, z pip._internal import main importError: Brak modułu o nazwie „pip._internal”

Poprawka do problemu było zastąpienie pip._internalaby pipw .local/bin/pip3robiąc sudo gedit .local/bin/pip3.


0

To jest problem, ale możesz go rozwiązać.

rm /user/bin/pip3 /user/local/bin/pip
sudo apt-get remove python-pip

niż zainstaluj ponownie

sudo apt-get install python-pip
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.