pip: brak modułu o nazwie _internal

100

Mam problem, gdy próbuję w jakikolwiek sposób używać pip. Używam Ubuntu 16.04.4

Powinienem powiedzieć, że już go używałem i nigdy nie miałem żadnego problemu, ale zaczynając od dzisiaj, kiedy używam dowolnego polecenia, zawsze otrzymuję ten sam błąd (jako przykład za pomocą pip --upgrade).

Traceback (most recent call last):
  File "/usr/local/bin/pip", line 7, in <module>
    from pip._internal import main
ImportError: No module named _internal

Próbowałem zrobić sudo apt-get remove python-pip, sudo apt-get install python-pipale nic się nie zmieniło.

Grimdrem
źródło
Upewnij się, że /usr/local/lib/pythonX.X/site-packagespoprzedza /usr/lib/pythonX.X/site-packagesw twoim $PATH.
hoefling
Ten sam problem tutaj. Znalazłeś rozwiązanie?
WayBehind
3
@WayBehind Znalazłem rozwiązanie. Zauważyłem, że używanie python -m pipwszystkiego działa dobrze. Poza tym usunąłem plik /usr/local/bin/pip, teraz wywołując pip -Vpowrót pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7). Wszystko wydaje się działać zgodnie z oczekiwaniami.
Grimdrem
Nadal mam ten sam problem, używam pip w środowisku Conda, Python 2.7 i używam pip install ipdb. Masz jakiś pomysł na ten temat?
Garvita Tiwari
1
Postępowano zgodnie z instrukcjami i flagą -H:sudo -H python3.7 get-pip.py --force-reinstall
Andres Leon Rangel

Odpowiedzi:

119

To zrobiło to dla mnie:

python -m pip install --upgrade pip

Środowisko: OSX && Python zainstalowany przez brew

magiczne odrodzenie
źródło
6
Dziękuję, to było dla mnie rozwiązanie wykorzystujące python3.
Furbeenator
2
to nie działa dla mnie. to, co zrobił @Grimdrem, skończyło się tym, co zrobiłem. W przeszłości zainstalowałem pip dla wszystkich (używając sudo lub czegoś podobnego) ... a moja aktualizacja była z --user, więc druga instalacja wciąż się kręciła ... usuwając ją z / usr / local / bin i z mojego Główny folder pakietu Pythona (nie --user's) załatwił sprawę.
user1269942
O dziwo, to też naprawiło to tutaj. Miałem zaktualizować #searx do najnowszego zatwierdzenia.
Roland
Wpadłem na to na Ubuntu na WSL. Ja też używam pyenv, ale w jakiś sposób stłumiłem systemowy Python, który vimużywa. To sprawiło, że wszystko było tam, gdzie powinno, a teraz taskwikiznów działa. Uff!
Daniel Black
Dzięki, to działa dla mnie, używam Pythona 3.8
Onaapo
65

Odpowiedź askUbuntu działa.

W przypadku pip2.7 możesz najpierw curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py, a następnie python2.7 get-pip.py --force-reinstallponownie zainstalować pip.

Problem rozwiązany. Działa również dla Python3.

YongHao Hu
źródło
6
To nie działa dla mnie, próbowałem tego kilka razy
Cleve Green
1
Naprawiłem to, ponownie instalując Pythona, co było absolutnym problemem teraz, gdy nie mam żadnego z moich poprzednich modułów
Cleve Green
Po prostu ugryziony przez ten problem, wydaje się, że jest to trochę klaster, apt-get install python-pipktóry nie działa w 16.04.4, a ty musisz skorzystać z binarnych instalatorów blobów?
Joe
1
aby to działało, musiałem usunąć wszystkie moje rzeczy z pip po stronie systemu :apt-get remove python-pip-whl
Sty
„Odmowa dostępu”. Prawdopodobnie musisz użyć sudo. Większość dystrybucji nie pozwala użytkownikom waniliowym instalować pip w całym systemie.
Cerin
21

U mnie działa to rozwiązanie:

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py --force-reinstall

lub użyj sudo dla podwyższonych uprawnień ( sudo python3 get-pip.py --force-reinstall).

Oczywiście możesz też użyć pythonzamiast python3;)

Źródło

Abdallah Okasha
źródło
20

Zapoznaj się z tą listą problemów

sudo easy_install pip

działa dla mnie pod Mac OS

Bo python3może spróbować sudo easy_install-3.x pipzależy od wersji Pythona 3.x. Lubpython3 -m pip install --user --upgrade pip

zangw
źródło
1
To stary Python2. Na Python3 Ubuntu przynajmniej powinieneś również uruchomić sudo easy_install-3.4 piplub podobnie.
NoBugs
To rozwiązało problem, gdy muszę zaktualizować pip 20.2.3 do pip 21.0 na MacOS. Dziękuję Ci!
Alex L
12

W pliku „/ usr / local / bin / pip” zmień from pip._internal import main nafrom pip import main

GauthamGAjith
źródło
10

Ten problem może być spowodowany tym, że zwykły użytkownik nie ma uprawnień dostępu do pliku py pakietów.
1. użytkownik root może uruchomić „pip list”
2. inny zwykły użytkownik nie może uruchomić „pip list”

[~]$ pip list
Traceback (most recent call last):
  File "/usr/bin/pip", line 7, in <module>
from pip._internal import main
ImportError: No module named pip._internal

Sprawdź uprawnienia do pliku pip py.

[root@]# ll /usr/lib/python2.7/site-packages/pip/  
合計 24  
-rw-------  1 root root   24  67 16:57 __init__.py  
-rw-------  1 root root  163  67 16:57 __init__.pyc  
-rw-------  1 root root  629  67 16:57 __main__.py  
-rw-------  1 root root  510  67 16:57 __main__.pyc  
drwx------  8 root root 4096  67 16:57 _internal  
drwx------ 18 root root 4096  67 16:57 _vendor  

rozwiązanie: logowanie użytkownika root i uruchomienie

chmod -R 755 /usr/lib/python2.7 

napraw ten problem.

Yi Yang Apollo
źródło
Wreszcie logiczne wyjaśnienie, na czym właściwie polega problem. Ponowna instalacja może rozwiązać problem, ale to jest prawdziwy powód, dla którego nie działa.
Maxime Viargues
7

Aby uzyskać kompletność, właśnie napotkałem ten problem z „najnowszym Ubuntu” ... v18.04 ... i naprawiłem go w ten sposób:

python3 -m pip install --upgrade pip

(Zauważ, że konieczne było określenie, python3ponieważ odwołuje się do Pythona 3.6.9. pythonPolecenie w tym samym systemie odwołuje się do Pythona 2.7.17. Ponieważ jest to najwyraźniej instalacja ogólnosystemowa, napotkała uprawnienie ["nie sudo" ...] błąd, ale nie miało to znaczenia, ponieważ i tak było to niewłaściwe. Miałem problem z pip3.)

Mike Robinson
źródło
Dostałem błąd no such option: --upradena Twoją komendę - więc pobiegłem python3 -m pip install pipi zadziałało :)
Xerus
5

Widziałem ten problem, gdy PYTHONPATHustawiono uwzględnienie wbudowanego site-packageskatalogu. Ponieważ Python szuka tam automatycznie, jest niepotrzebny i można go usunąć.

Levi Morrison
źródło
2
To rozwiązało problem, dzięki. Po prostu zapisałem gdzieś $ PYTHONPATH i pobiegłem, export PYTHONPATH=""żeby uruchomić pip.
ibowman
ale podczas próby echo $ PYTHONPATH nie uwzględniono pakietów witryn.
alyssaeliyah
Spotkałem się z tym podczas budowania środowiska wirtualnego w systemie, który wykorzystuje moduły do ​​zarządzania pakietami oprogramowania. Kiedy załadowałem, mówisz „ładowanie modułu python / 3.5.2” i dodajesz plik PYTHONPATH. Następnie, kiedy aktywowałem moje wirtualne środowisko, nigdy nie wyłączało ono mojej PYTHONPATH, co oznaczało, że odnalazło poziom systemu, pipa nie ten w moim virtualenv.
irritable_phd_syndrom
4

Właśnie napotkałem ten sam problem iw moim przypadku okazuje się, że jest to konflikt między instalacją Pythona w moim virtualenv a pythonem dla całej witryny (Ubuntu). Rozwiązuje to dla mnie uruchomienie pip w ten sposób, aby wymusić użycie poprawnej instalacji Pythona (w moim vortualenv):

python3 -m pip install PACKAGE

zamiast

pip3 install PACKAGE

Zrozumiałem to, gdy próbowałem podążać za niektórymi odpowiedziami, które sugerują ponowną instalację pip, a wynik błędu, który otrzymałem, wskazywał na istniejącą ścieżkę biblioteki Pythona dla całej witryny, chociaż aktywowałem mój virtualenv. Warto spróbować przed usunięciem i ponowną instalacją.

tospo
źródło
Jak wspomniano w tej odpowiedzi stackoverflow.com/a/50737296/1340995 , jest to kwestia uprawnień. Zauważyłem, że użycie pip with python3 -m piprozwiązuje również ten problem, prawdopodobnie dlatego, że pythonma uprawnienia do wykonywania i nie potrzebuje pip, aby mieć uprawnienie + x, ponieważ po prostu ładuje plik i nie wykonuje go.
Maxime Viargues
3

Czy używasz python2 czy python3? Następujące polecenie może być inne!

  1. użyj, python3 -m pip --versionaby sprawdzić, czy masz zainstalowany pip.
  2. jeśli tak, uciekaj python3 -m pip install --upgrade pip.
  3. jeśli nie, biegnij sudo apt-get install python3-pipi zrób to jeszcze raz.
Dongcheng Wang
źródło
3

Prawdopodobnie jest to spowodowane konfliktem wersji, spróbuj to uruchomić, jakoś usunie starszy pip.

sudo apt remove python pip
Tinashe Makuti
źródło
Bez względu na to, co jest warte, wydaje się, że jest to rozwiązanie dla dystrybucji podobnej do Debiana ( np. Ubuntu 16.04), w której python-pippakiet został zainstalowany na poziomie dystrybucji i get-pip.pybył używany dla wersji specyficznej dla użytkownika, pipktóra również znajdowała się w $PATH. I sudo apt-get removeD python-pippakiet (2,7) i wykorzystał jeden w moim ~ / .local / bin zamiast. Nie ma więcej komunikatów o błędach.
TheDudeAbides
3

Dla mnie

python -m pip uninstall pip

rozwiązał problem. Odniesienie

hariszaman
źródło
2

Naprawiłem ten błąd, uruchamiając następujące polecenia:

sudo apt remove python-pip
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py

Spowoduje to usunięcie wcześniej zainstalowanego pip i ponowne zainstalowanie go. Dzięki :)

Ateeb
źródło
1

Następujące rozwiązanie rozwiązało problem na moim komputerze dla python2.7 "$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py", a następnie "$ sudo python2.7 get-pip .py --force-reinstalacja "

Merwanski
źródło
1
Ten działa dla mnie, ale musisz go zmienić na wersję Pythona, której używasz. sudo python3 get-pip.py --force-reinstaluj. Świetny.
alyssaeliyah
1

Tylko dla bieżącego użytkownika:

easy_install --user pip

lub

python -m pip install --upgrade --user pip

Drugi może dać /usr/bin/python: No module named pip nawet jeśli which pipznajdzie moduł o nazwie pip. W takim przypadku wypróbujeasy_install

Mihai.Mehe
źródło
1

Napotkałem ten sam błąd w systemie Windows, gdy próbowałem zainstalować pakiet przez pip3:

Traceback (most recent call last):
  File "d:\anaconda\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "d:\anaconda\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "D:\Anaconda\Scripts\pip3.6.exe\__main__.py", line 5, in <module>
ModuleNotFoundError: No module named 'pip._internal'

Mój Python jest instalowany przez Anacondę. Rozwiązałem ten problem, ponownie instalując pip przez conda:

conda install pip

Następnie pip wraca do normy.

jdhao
źródło
0

Nic nie działało, ale tylko jedno: użyłem sudo przed poleceniem i działa dobrze.

GeorgesD
źródło
Mój przypadek był dziwniejszy, ponieważ „sudo” nadal dawało mi ten sam błąd. Musiałem przełączyć się na roota (sudo su na ubuntu), aby móc zrobić listę pip3.5 i zainstalować pip3.5: |
jmng
0

Mam ten sam problem w moim środowisku wirtualnym po aktualizacji instalacji Pythona z 3.6 do 3.7, ale tylko na wentylacji globalnej pip działa dobrze, aby go rozwiązać, dezaktywuję i usuwam moje środowisko wirtualne po ponownym utworzeniu i teraz jest w porządku, na venv:

deactivate
rm -rvf venv 

a po odtworzeniu środowiska wirtualnego. Używam systemu Mac OS 10.11 i Pythona 3

bayocr
źródło
0

(W systemie Windows) nie jestem pewien, dlaczego tak się dzieje, ale moja konfiguracja PYTHONPATH wskazywała na c: \ python27, gdzie został zainstalowany python. w połączeniu z virtualenv spowodowało to wspomniany błąd.

rozwiązano, usuwając jednocześnie zmienną PYTHONPATH env

Gil Hiram
źródło
0

moje rozwiązanie: pierwszy krok jak większość odpowiedzi:

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python2.7 get-pip.py --force-reinstall

po drugie, dodaj miękki link

sudo ln -s /usr/local/bin/pip /usr/bin/pip
Jan
źródło
0

możesz go najpierw usunąć i zainstalować ponownie, będzie dobrze. dla centów:

yum remove python-pip
yum install python-pip
user3890444
źródło
0

Naprawiłem ten problem przez

sudo apt-get install python3-pip

działało to nawet dla Pythona 2.7, niesamowite ...

Yu Jiaao
źródło
0

Moje rozwiązanie polega na dodaniu import pipdo skryptu połączonego z pip/pip3poleceniami.

Po pierwsze, otwórz plik (np. /usr/local/bin/pip) Za pomocą ulubionego edytora tekstu i trybu sudo. Na przykład używam sudo vim /usr/local/bin/pipdo otwierania pliku skryptu.

Otrzymasz plik w następujący sposób:

import re
import sys

from pip._internal import main

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
    sys.exit(main())

Następnie wstaw oświadczenie import piptuż przed from pip._internal import mainrozwiązaniem problemu.

N.Hung
źródło
0

Często wynika to z używania pip do „aktualizacji” zainstalowanego w systemie pip i / lub posiadania wielu instalacji pip przez użytkownika. Moim rozwiązaniem było wyczyszczenie wielu zainstalowanych pipsów użytkownika, ponowne zainstalowanie pip repo, a następnie „pip install --user pip” jak powyżej.

Zobacz: https://github.com/pypa/pip/issues/5599, aby uzyskać oficjalną pełną dyskusję i rozwiązania problemu.

user2898616
źródło
-1

Wypróbowałem następujące polecenie, aby rozwiązać problem i zadziałało:

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py --force-reinstall
abbas khan
źródło