pip: nessun modulo denominato _internal


98

Ho un problema quando provo a usare pip in qualsiasi modo. Sto usando Ubuntu 16.04.4

Devo dire che l'ho già usato e non ho mai avuto alcun problema, ma a partire da oggi quando uso un qualsiasi comando ottengo sempre lo stesso errore (ad esempio utilizzando 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

Ho provato a fare sudo apt-get remove python-pipseguito da sudo apt-get install python-pipma non è cambiato nulla.


Assicurati che /usr/local/lib/pythonX.X/site-packagespreceda /usr/lib/pythonX.X/site-packagesnel tuo $PATH.
Hoefling

Stesso problema qui. Hai trovato una soluzione?
WayBehind

3
@WayBehind ho trovato una soluzione. Ho notato che l'utilizzo di python -m piptutto funziona perfettamente. Oltre a ciò, ho rimosso il file /usr/local/bin/pip, ora chiamando il pip -Vritorno pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7). Tutto sembra funzionare come previsto.
Grimdrem

Ho ancora lo stesso problema, sto usando pip in ambiente conda, python 2.7 e sto usando pip install ipdb. Qualche idea su questo?
Garvita Tiwari

1
Seguiti i passaggi più la bandiera -H:sudo -H python3.7 get-pip.py --force-reinstall
Andres Leon Rangel

Risposte:


112

Questo lo ha fatto per me:

python -m pip install --upgrade pip

Ambiente: OSX e & Python installati tramite brew


6
Grazie, questa è stata la soluzione per me usando python3.
Furbeenator

2
questo non ha funzionato per me. quello che ha fatto @Grimdrem è quello che ho finito per fare. Avevo (in passato) installato pip per tutti (usando sudo o qualcosa del genere) ... e il mio aggiornamento era con --user, quindi l'altra installazione era ancora in giro ... rimuovendolo da / usr / local / bin e dal mio la cartella del pacchetto principale di Python (non --user) ha fatto il trucco.
user1269942

Stranamente questo l'ha risolto anche qui. Dovevo aggiornare #searx all'ultimo commit.
Roland

Mi sono imbattuto in questo su Ubuntu su WSL. Uso anche pyenv, ma in qualche modo ho smorzato il sistema che vimusa python . Questo ha messo le cose dove dovevano essere e ora taskwikifunziona di nuovo. Whew!
Daniel Black,

Grazie, per me funziona, sto usando python 3.8
Onaapo

62

Una risposta da askUbuntu funziona.

Per pip2.7, puoi prima curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py, quindi python2.7 get-pip.py --force-reinstallreinstallare pip.

Problema risolto. Funziona anche per python3.


6
Questo non funziona per me, l'ho provato un paio di volte
Cleve Green

1
L'ho risolto reinstallando python, il che è stato un vero dolore ora che non ho nessuno dei miei moduli precedenti
Cleve Green,

Appena morso da questo problema, sembra essere un po 'un cluster che apt-get install python-pipnon funziona su 16.04.4 e tu ricorri a programmi di installazione di blob binari?
Joe

1
per farlo funzionare ho dovuto togliere tutte le mie laterali sistema di cose pip:apt-get remove python-pip-whl
Jan

"Permesso negato". Probabilmente dovrai usare sudo. La maggior parte delle distribuzioni non consente agli utenti vanilla di installare pip a livello di sistema.
Cerin

21

Questa soluzione funziona per me:

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

o usa sudo per autorizzazioni elevate ( sudo python3 get-pip.py --force-reinstall).

Ovviamente puoi anche usare al pythonposto di python3;)

fonte


19

Fare riferimento a questo elenco di problemi

sudo easy_install pip

funziona per me con Mac OS

Perché python3, può provare sudo easy_install-3.x pipdipende dalla versione di python 3.x. Opython3 -m pip install --user --upgrade pip


1
Questo è il vecchio Python2. Su Python3 Ubuntu almeno dovresti anche eseguire sudo easy_install-3.4 pipo simili.
NoBugs

11

Nel file "/ usr / local / bin / pip" cambia from pip._internal import main infrom pip import main


9

Questo problema potrebbe essere dovuto al fatto che l'utente comune non ha il privilegio di accedere al file py dei pacchetti.
1. L'utente root può eseguire "pip list"
2. Un altro utente comune non può eseguire "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

Controlla il privilegio del file pip py.

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

soluzione: login utente root ed esegui

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

risolvere questo problema.


Finalmente una spiegazione logica di quale sia effettivamente il problema. La reinstallazione potrebbe risolvere il problema, ma questo è il vero motivo per cui non funziona in primo luogo.
Maxime Viargues,

6

Per completezza, ho appena riscontrato questo problema con "Ubuntu latest" ... v18.04 ... e l'ho risolto in questo modo:

python3 -m pip install --upgrade pip

(Si noti che è stato necessario specificare python3poiché questo fa riferimento a Python 3.6.9. Il pythoncomando sullo stesso sistema fa riferimento a Python 2.7.17. Poiché questa è apparentemente un'installazione a livello di sistema, ha riscontrato un'autorizzazione ["non sudo" ...] errore, ma non importava perché era comunque la cosa sbagliata. Ho riscontrato il problema pip3.)


Ho ricevuto l'errore no such option: --upradesul tuo comando, quindi sono corso python3 -m pip install pipe ha funzionato :)
Xerus

5

Ho riscontrato questo problema quando è PYTHONPATHstato impostato per includere la site-packagesdirectory incorporata . Dato che Python guarda lì automaticamente, non è necessario e può essere rimosso.


2
Questo mi ha risolto, grazie. Ho semplicemente salvato $ PYTHONPATH da qualche parte, poi sono corso export PYTHONPATH=""a far funzionare pip.
ibowman

ma quando si prova a echo $ PYTHONPATH, i pacchetti del sito non sono stati inclusi.
alyssaeliyah

Ho riscontrato questo problema durante la creazione di un ambiente virtuale su un sistema che utilizza i moduli per gestire i pacchetti software. Quando ho caricato dici "module load python / 3.5.2" e antepone il tuo PYTHONPATH. Quindi, quando ho attivato il mio ambiente virtuale, non ha mai disattivato il mio PYTHONPATH, il che significa che ha trovato il livello di sistema pipe non quello nel mio virtualenv.
irritable_phd_syndrom

4

Ho appena riscontrato lo stesso problema e nel mio caso risulta che si tratta di un conflitto tra l'installazione di python nel mio virtualenv e il python a livello di sito (Ubuntu). Ciò che lo risolve per me è eseguire pip in questo modo, per forzare l'utilizzo della corretta installazione di python (nel mio vortualenv):

python3 -m pip install PACKAGE

invece di

pip3 install PACKAGE

Me ne sono reso conto quando ho provato a seguire alcune delle risposte qui che suggeriscono di reinstallare pip e l'output di errore che ho ottenuto puntava a un percorso di libreria python esistente a livello di sito sebbene avessi attivato il mio virtualenv. Vale la pena provare prima di eliminare e reinstallare cose.


Come accennato in questa risposta stackoverflow.com/a/50737296/1340995 è un problema di autorizzazione. Ho scoperto che l'uso di pip con python3 -m piprisolve anche questo problema, probabilmente perché pythonha il permesso di eseguire e non ha bisogno che pip abbia il permesso + x poiché sta solo caricando il file e non eseguendolo.
Maxime Viargues,

3

Stai usando python2 o python3? Il seguente comando potrebbe essere diverso!

  1. usa python3 -m pip --versionper vedere se hai pip installato.
  2. se sì, corri python3 -m pip install --upgrade pip.
  3. se no, corri sudo apt-get install python3-pipe fallo di nuovo.

3

Probabilmente è dovuto a un conflitto di versione, prova a eseguirlo, in qualche modo rimuoverà il vecchio pip.

sudo apt remove python pip

Per quello che vale, questa sembra essere la soluzione per una distribuzione simile a Debian ( ad esempio , Ubuntu 16.04) in cui il python-pippacchetto era installato a livello di distro ed get-pip.pyera stato utilizzato per una versione specifica dell'utente di pipcui era presente anche in $PATH. Ho sudo apt-get removescaricato il python-pippacchetto (2.7) e ho usato quello nel mio ~ / .local / bin. Nessun altro messaggio di errore.
TheDudeAbides


2

Ho corretto questo errore eseguendo i seguenti comandi:

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

Rimuoverà il pip precedentemente installato e lo reinstallerà. Grazie :)


1

La seguente soluzione ha risolto il problema sulla mia macchina per python2.7 "$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py" e poi "$ sudo python2.7 get-pip .py --force-reinstall "


1
Questo funziona per me, tuttavia devi cambiarlo nella versione di Python che stai utilizzando. sudo python3 get-pip.py --force-reinstall. Grande.
alyssaeliyah

1

Solo per l'attuale utente:

easy_install --user pip

o

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

Il secondo può dare /usr/bin/python: No module named pip anche se which piptrova il modulo denominato pip. In questo caso prova il fileeasy_install


1

Ho riscontrato lo stesso errore su Windows quando ho provato a installare un pacchetto tramite 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'

Il mio python è installato tramite Anaconda. Ho risolto questo problema reinstallando pip tramite conda:

conda install pip

Dopodiché, pip torna alla normalità.


0

Niente ha funzionato per me, ma solo una cosa: ho usato sudo davanti al comando e funziona bene.


Il mio caso era più strano perché "sudo" mi dava ancora lo stesso errore. Ho dovuto passare a root (sudo su su ubuntu) per poter eseguire la lista pip3.5 e l'installazione pip3.5: |
jmng

0

Ho lo stesso problema sul mio ambiente virtuale dopo l'aggiornamento dell'installazione di python da 3.6 a 3.7 ma solo su vent globalmente pip funziona bene, per risolverlo disattivo ed elimino il mio ambiente virtuale dopo aver ricreato di nuovo e ora va bene, su venv:

deactivate
rm -rvf venv 

e dopo ricreare l'ambiente virtuale. Uso mac OS 10.11 e python 3


0

(Su Windows) non sono sicuro del motivo per cui questo stava accadendo, ma avevo la mia configurazione PYTHONPATH per puntare a c: \ python27 dove era installato python. in combinazione con virtualenv questo ha prodotto il bug menzionato.

risolto rimuovendo tutti insieme la var env PYTHONPATH


0

la mia soluzione: primo passo come la maggior parte delle altre risposte:

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

secondo, aggiungi soft link

sudo ln -s /usr/local/bin/pip /usr/bin/pip


0

puoi prima rimuoverlo e installarlo di nuovo, sarà ok. per i centesimi:

yum remove python-pip
yum install python-pip

0

Ho risolto questo problema da

sudo apt-get install python3-pip

questo ha funzionato anche per python2.7, sorprendente ...


0

La mia soluzione sta aggiungendo import pipallo script collegato al filepip/pip3 comandi.

In primo luogo, apri il file (ad esempio /usr/local/bin/pip) con il tuo editor di testo preferito e la modalità sudo. Ad esempio, utilizzo sudo vim /usr/local/bin/pipper aprire il file di script.

Otterrai alcuni file come segue:

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

Successivamente, inserisci l'istruzione import pipappena prima che from pip._internal import mainil problema venga risolto.


0

Questi spesso derivano dall'utilizzo di pip per "aggiornare" il pip installato nel sistema e / o dall'avere più installazioni di pip sotto l'utente. La mia soluzione è stata quella di ripulire i più pip installati sotto user, reinstallare pip repo, quindi "pip install --user pip" come sopra.

Vedere: https://github.com/pypa/pip/issues/5599 per una discussione ufficiale completa e soluzioni per il problema.


0

Ho provato il seguente comando per risolvere il problema e ha funzionato per me:

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py --force-reinstall
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.