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.


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


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.


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


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


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


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.


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.)


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ąć.


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ą.


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.

3

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

sudo apt remove python pip

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


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 :)


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 "


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


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.


0

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


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


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


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


0

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

yum remove python-pip
yum install python-pip

0

Naprawiłem ten problem przez

sudo apt-get install python3-pip

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


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.


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.


-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
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.