Error después de actualizar pip: no se puede importar el nombre 'main'

467

Cada vez que intento instalar cualquier paquete usando pip, recibo este error de importación:

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'


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

Funcionaba bien antes, no estoy seguro de por qué está arrojando este error. He buscado este error, pero no puedo encontrar nada para solucionarlo.

Avíseme si necesita más detalles, actualizaré mi pregunta.

g_p
fuente
1
Discusión adicional en este enlace .
Diagon
77
Tuve el mismo problema porque solía pip install --upgrade pipactualizar pip en un servidor donde no tengo privilegios de administrador. Desinstalar pip con python -m pip uninstall pipresuelto mi problema.
Foad
Las respuestas no me ayudaron. Este fue mi problema: github.com/pypa/pipenv/issues/2095
Étienne

Respuestas:

846

Debes haber actualizado inadvertidamente tu pip del sistema (probablemente a través de algo como sudo pip install pip --upgrade)

pip 10.x ajusta dónde están situadas sus partes internas. El pip3comando que está viendo es uno proporcionado por el responsable del mantenimiento de su paquete (¿presumiblemente basado en Debian aquí?) Y no es un archivo administrado por pip.

Puede leer más sobre esto en el rastreador de problemas de pip

Es probable que desee para no actualizar su sistema de pepita y en su lugar utilizar un virtualenv.

Para recuperar el pip3binario necesitarás hacerlo sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall.

Si desea continuar en un "territorio no admitido" (actualizar un paquete del sistema fuera del administrador de paquetes del sistema), probablemente pueda salirse con la suya en python3 -m pip ...lugar de hacerlo pip3.

Anthony Sottile
fuente
28
sudo apt install python3-pip --reinstallno solucionó el problema, sin embargo, puedo instalar el paquete usando python3 -m pip. Gracias por tu ayuda. Lo estoy marcando como aceptado.
g_p
2
@g_p actualizó las instrucciones de "arreglo" - solo las verificó en la ventana acoplable (¡debería haberlo hecho la primera vez!)
Anthony Sottile
66
Necesito usar el comando 'python -m pip uninstall pip' ya que 'sudo pip uninstall pip' dio un error similar a la pregunta original
Mz A
41
¡Gracias! Eso ayudó! Uso sudo python -m pip uninstall pip && sudo apt install python-pip --reinstallpara python2!
Barmaley
1
Funciona para Ubuntu en Windows. La solución es lo que @Barmaley sugiere para python2 (el intérprete de python predeterminado).
jdhao
111

Podemos borrar el error modificando el archivo pip.

Verifique la ubicación del archivo:

$ which pip

ruta -> / usr / bin / pip

Vaya a esa ubicación ( / usr / bin / pip ) y abra la terminal

Entrar: $ sudo nano pip

Puedes ver:

import sys
from pip import main
if __name__ == '__main__':
     sys.exit(main())

Cambiar a:

import sys
from pip import __main__
if __name__ == '__main__':
     sys.exit(__main__._main())

luego ctrl + o escribe los cambios y sale

Espero que esto haga !!

vijay athithya
fuente
1
Hacer estos cambios no solucionó el problema, pero cambiarlo de nuevo al texto original sí lo hizo. ¯_ (ツ) _ / ¯
David
2
Intenté esto, pero obtuveAttributeError: module 'pip.__main__' has no attribute 'main'
dnnagy
44
Asegúrese de escribir _main () no main ()
vijay athithya
2
en la última versión pip3, main()se mueve a pip._internal. La declaración de importación debe cambiarse afrom pip._internal import main
Yossarian42
2
¡Trabajado como un encanto! Gracias
mahesh nanayakkara
69

Para la familia Ubuntu, Debian, usuarios de Linux Mint

Gracias a la explicación anterior de Anthony , puede conservar su pip original del sistema (en / usr / bin / y dist-packages /) y eliminar el pip instalado manualmente (en ~ / .local /) para resolver el conflicto:

$ python3 -m pip uninstall pip

Ubuntu / Debian pip v8.1.1 (16.04) del python3-pippaquete debian (ver $ pip3 -V) muestra los mismos resultados de búsqueda que el último pip v10.0.1, e instala los últimos módulos de PyPI muy bien. Tiene un pipcomando de trabajo (ya en $ PATH), además de la buena --useropción parcheada por defecto desde 2016. Mirando las notas de lanzamiento de pip , las versiones más nuevas tratan principalmente de correcciones de errores específicas de casos de uso y ciertas nuevas características, por lo que no todo el mundo tiene que apresurarse a actualizar pip por el momento. Y el nuevo pip 10 se puede implementar en Python virtualenvs, de todos modos.

Pero independientemente de los pips, su sistema operativo permite instalar rápidamente módulos comunes de Python (incluidos numpy) con APT, sin necesidad de pip, por ejemplo:
$ sudo apt install python3-numpy python3-scipy(con dependencias del sistema)
$ sudo apt install python3-pip(pip parcheado en Debian, un poco más antiguo pero no importa)

Recordatorio rápido de la sintaxis de apt (consulte los man aptdetalles):
$ sudo apt update(para volver a sincronizar los archivos de índice de paquetes de Ubuntu desde fuentes actualizadas)
$ apt search <python-package-name> (búsqueda de texto completo en todos los paquetes disponibles)
$ apt show <python-package-name>(muestra la descripción detallada del paquete)
$ sudo apt install <python-package-name>

Los nombres de los paquetes con el prefijo python-son para Python 2; y con el prefijo python3-son para Python 3 (por ejemplo, python3-pandas). Hay miles, y se someten a pruebas de integración dentro de Debian y Ubuntu. A menos que busque instalar a nivel de usuario ( pip install --useropción) o dentro de virtualenv / venv, apt podría ser lo que necesita. También se puede acceder a estos paquetes del sistema desde entornos virtuales, ya que virtualenv recurrirá con gracia al uso de las bibliotecas del sistema en la importación si sus entornos no han proporcionado copias de los módulos. Los --usermódulos por usuario instalados a medida (con pip ) ~/.local/libtambién los anularán.

Tenga en cuenta que, dado que se trata de una instalación en todo el sistema , rara vez necesitará eliminarlos (debe tener en cuenta las dependencias del sistema operativo). Esto es conveniente para paquetes con muchas dependencias del sistema (como scipy o matplotlib), ya que APT realizará un seguimiento y proporcionará todas las bibliotecas del sistema y extensiones C requeridas, mientras que con pip no tiene tales garantías .

De hecho, para los paquetes de Python en todo el sistema (en contraste con el nivel de directorio de inicio o inferior por usuario), Ubuntu espera usar el administrador de paquetes APT (en lugar de sudo pip) para evitar romper el sistema operativo: sudo pip3apunta al mismo /usr/lib/python3/dist-packagesdirectorio donde APT almacena el sistema operativo -módulos sensibles. Las versiones recientes de Debian / Ubuntu dependen en gran medida de Python 3, por lo que sus módulos preinstalados son administrados por apty no deben cambiarse.

Entonces, si usa el pip3 installcomando, asegúrese de que se ejecute en un entorno de desarrollo virtual aislado, como virtualenv ( sudo apt install python3-virtualenv), o con Python3 incorporado ( -m venv), o en un nivel por usuario ( --useropción pip, predeterminada en Ubuntu) pip desde 2016), pero no en todo el sistema ( sudo pip3¡ nunca !), porque pip interfiere con la operación del administrador de paquetes APT y puede afectar los componentes del sistema operativo Ubuntu cuando un módulo python utilizado por el sistema se cambia inesperadamente. ¡Buena suerte!


P. S. Todo lo anterior es para la solución 'ideal' (estilo Debian / Ubuntu).

Si aún desea utilizar el nuevo pip3 v10 exclusivamente, hay 3 soluciones rápidas:

  • simplemente abra una nueva sesión de bash (una nueva pestaña de terminal o tipo bash), y pip3 v10 estará disponible (consulte pip3 -V). el pip3 v8 de debian permanece instalado pero está roto; o
  • el comando $ hash -d pip3 && pip3 -V para actualizar el nombre de ruta pip3 en $ PATH. el pip3 v8 de debian permanece instalado pero está roto; o
  • El comando $ sudo apt remove python3-pip && hash -d pip3para desinstalar Debian's pip3 v8 completamente, a favor de su nuevo pip3 v10.

Nota: ¡Siempre tendrá que agregar una --usermarca a cualquier pip no proporcionado por Debian, a menos que esté en un virtualenv! (implementa paquetes de python en ~/.local/, por defecto, en python3-pip y python-pip proporcionados por debian / ubuntu desde 2016). Ubuntu / Debian no admite realmente el uso de pip 10 en todo el sistema, fuera de virtualenv. Nunca sudo pip3!

Más detalles:
https://github.com/pypa/pip/issues/5221#issuecomment-382069604
https://github.com/pypa/pip/issues/5240#issuecomment-381673100

Alex C.
fuente
¿Me pueden ayudar a entender por qué instalar una versión actualizada de pip localmente con --user, es decir sudo, sin , afecta mi capacidad de ejecutar el apt instalado pip? Pensé que los dos coexistirían. Pero como esta esencia muestra que el apt instalado se rompe después de que lo hago python3 -m pip install --user --upgrade pip. No estoy buscando una solución, solo tengo curiosidad por entender lo que está sucediendo aquí.
George Hawkins
1
@George Sucede debido a la falta de coincidencia entre las bibliotecas de pip y sus contenedores que las importan. Intentar ejecutar el comando pip del sistema de inmediato (sin aplicar ninguna de las soluciones ) aún llamaría a la versión del sistema apt-instalada de la secuencia de comandos pip wrapper en /usr/bin/pip3lugar de la instalada como --user( ~/.local/bin/pip*) según el sistema operativo $ PATH que todavía está configurado para ejecutar el versión del sistema del contenedor, pero no sus bibliotecas ..
Alex C.
2
@ George Esto se debe a que ahora hay un paquete pip más nuevo instalado ~/.local/lib/python3.?/site-packages/pipque tiene prioridad sobre el sistema apto en las importaciones relativas de Python (el sitio local del usuario tiene prioridad sobre las bibliotecas globales). Y debido a que el contenedor from pip import mainmás antiguo intenta en lugar de from pip._internalsu __main__clase contra la versión más nueva del paquete pip, el comando pip desde el gist falla ImportError: cannot import name 'main'. Por lo tanto, ambos pips pueden coexistir (en el disco) pero la funcionalidad del sistema original estará "rota".
Alex C.
+1 para --user . pip install --useres lo que hizo por mi (Tengo python 2.7, python 3.6 y python 3.7, todos instalados en Ubuntu 18.04 LTS.)
Stephen G Tuggy
46

resuelto en un solo paso.

Yo también enfrenté este problema, pero esto se puede resolver simplemente con 1 comando sin molestar y perder el tiempo y lo he probado en múltiples sistemas, es la solución más limpia para este problema. Y eso es:

Para python3: - sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall.

Con esto, simplemente puede instalar paquetes usando pip3. para verificar el uso pip3 --version.

Para versiones anteriores, utilice: sudo python -m pip uninstall pip && sudo apt install python-pip --reinstall.

Con esto, ahora puede simplemente instalar paquetes usando pip . para verificar el uso pip --version.

Saket
fuente
31

Usar en python -m pip installlugar depip install

Ejemplo:

python -m pip install --user somepackage
python3 -m pip install --user somepackage

El ejecutable pip(resp. pip3) Lo proporciona su distribución ( python-pippaquete en Ubuntu 16.04) y se encuentra en /usr/bin/pip.

Por lo tanto, no se mantiene actualizado con el pippaquete en sí a medida que actualiza pip, y puede romperse.

Si solo lo usa python -m pipdirectamente, por ejemplo, como en:

python -m pip install --user somepackage
python3 -m pip install --user somepackage

recorre su ruta de Python, encuentra la última versión de pip y ejecuta ese archivo.

Se basa en el hecho de que el archivo es ejecutable import, pero ese es un tipo de interfaz muy estándar y, por lo tanto, es menos probable que se rompa que el script de Debian más pirateado.

Luego recomiendo agregar los siguientes alias a su .bashrc:

pip() ( python -m pip "$@" )
pip3() ( python3 -m pip "$@" )

El /usr/bin/pip3archivo Ubuntu 18.04 hace:

from pip import main

y presumiblemente mainfue eliminado depip algún punto que es lo que rompió las cosas.

La confirmación de pip de ruptura parece ser: 95bcf8c5f6394298035a7332c441868f3b0169f4 "Mover todas las API internas a pip._internal" que entró en pip 18.0.

Probado en Ubuntu 16.04 después de una actualización de pip39.0.1 a 18.0.

pyenv

Sin embargo, en última instancia, para el desarrollo serio de Python, solo recomendaría que instale su propio Python local con pyenv + virtualenv, que también solucionaría este error de Ubuntu: /ubuntu/682869/how-do-i- install-a-different-python-version-using-apt-get / 1195153 # 1195153

Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
fuente
3
Después de 5 horas de búsqueda, esto funcionó para mí. Puedo entregarte una flor si me envías tu dirección. gracias.
cagri
18

Puede resolver este problema reinstalando pip.

Use uno de los siguientes comandos de línea de comandos para reinstalar pip:

Python2:

python -m pip uninstall pip && sudo apt install python-pip --reinstall

Python3:

 python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall
Codemaker
fuente
8

Estoy corriendo en un sistema donde tengo sudo apt pero no sudo pip. (Y sin acceso). Me metí en esta misma situación siguiendo los consejos de pip:

Está utilizando pip versión 8.1.1, sin embargo, 18.0 está disponible. Debería considerar la actualización mediante el comando 'pip install --upgrade pip'.

Ninguna de las otras soluciones funcionó para mí, porque no tengo suficientes privilegios de administrador. Sin embargo, algunas cosas me quedaron de leer sobre esto:

  • No debería haber hecho esto. Claro, pip me dijo que lo hiciera. Mentía
  • El uso de --user resuelve muchos problemas al centrarse en el directorio exclusivo para usuarios.

Entonces, encontré que esta línea de comando funciona para revertirme a donde estaba. Si estaba utilizando una versión diferente a la 8.1.1, obviamente querrá cambiar esa parte de la línea.

python -m pip install --force-reinstall pip==8.1.1 --user

Eso es lo único que funcionó para mí, ¡pero funcionó perfectamente!

Scott Mermelstein
fuente
7

Recuperar con python3 -m pip install --user pip==9.0.1(o la versión que funcionó)

Claire
fuente
5

Lo mismo me sucedió en Pixelbook usando el nuevo LXC (strech). Esta solución es muy similar a la aceptada, con una sutil diferencia, que pip3 fijo para mí.

sudo python3 -m pip install --upgrade pip

Eso golpeó la versión, y ahora funciona como se esperaba.

Lo encontré aquí ... Python.org: asegúrese de que pip esté actualizado

fliptopbox
fuente
4

Encontré el mismo problema en mi sistema Ubuntu 16.04. Logré arreglarlo reinstalando pip con el siguiente comando:

curl https://bootstrap.pypa.io/get-pip.py | sudo python3

jkjung13
fuente
Tiene la ventaja de que lo instala desde la fuente, y ninguno de los anteriores funcionó en un Debian 9 limpio y vacío (de mi proveedor de servidor dedicado)
Peter Rosemann
curling internet para superusuario, ¡qué podría salir mal!
Sum1sAdmin
3

Los comandos anteriores no funcionaron para mí, pero fueron muy útiles:

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*  
sudo pip3 install jupyter
Pierrot
fuente
2

En ubuntu 18.04.1 Bionic Beaver, debe cerrar sesión y volver a iniciarla (no es necesario reiniciar) para obtener el entorno adecuado.

$ sudo apt install python-pip

$ pip --version
pip 9.0.1 from /usr/lib/python2.7/dist-packages (python 2.7)

$ pip install --upgrade pip

$ pip --version
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    from pip import main
ImportError: cannot import name main

$ exit
<login>

$ pip --version
pip 18.1 from /home/test/.local/lib/python2.7/site-packages/pip (python 2.7)
Jeff Hoye
fuente
1

Yo uso sudo apt remove python3-pip entonces pipfunciona.

 ~ 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]
jim gabriel
fuente
1
Es porque pipes para Python 2. OP utiliza pip3, la versión de Python 3 pip, que acaba de eliminar. Estos dos son distintos y no intercambiables.
Neinstein
1

Para la versión 2.7 de Python, la solución @Anthony funciona perfectamente, cambiando python3 a python de la siguiente manera:

sudo python -m pip uninstall pip && sudo apt install python-pip --reinstall
ewalel
fuente
1

Lo que funcionó para mí para solucionar el error con el uso pip3fue:

sudo cp -v /usr/local/bin/pip3 /usr/bin/pip3

Todo funciona:

 demon@UbuntuHP:~$ pip -V
 pip 10.0.1 from /usr/local/lib/python3.5/dist-packages/pip (python 3.5)

 demon@UbuntuHP:~$ pip2 -V
 pip 10.0.1 from /home/demon/.local/lib/python2.7/site-packages/pip (python 2.7)

 demon@UbuntuHP:~$ pip3 -V
 pip 10.0.1 from /usr/local/lib/python3.5/dist-packages/pip (python 3.5)

¿Quizás la nueva versión 10.0.1 de pip no actualiza el binario en / usr / bin? (que parece que no)

EDITAR: el mismo problema ocurre en Ubuntu 18.04. La mejor solución que he encontrado es enlazar simbólicamente los binarios de pepita de /home/<user/.local/binque /usr/local/bino /usr/bin(dependiendo de su preferencia), de la siguiente manera:

ln -sv /home/<user>/.local/bin/pip /usr/local/bin/pip
ln -sv /home/<user>/.local/bin/pip2 /usr/local/bin/pip2
ln -sv /home/<user>/.local/bin/pip2.7 /usr/local/bin/pip2.7
ln -sv /home/<user>/.local/bin/pip3 /usr/local/bin/pip3
ln -sv /home/<user>/.local/bin/pip3.6 /usr/local/bin/pip3.6

NOTA: reemplace <user> con su usuario actual en ejecución

Las versiones asociadas (más recientes) están en:

Versión 3.6:

/home/demon/.local/lib/python3.6/site-packages/pip (python 3.6)

Versión 2.7:

/home/demon/.local/lib/python2.7/site-packages/pip (python 2.7)

cryptoboy
fuente
Este solucionó mi problema. Las otras respuestas no.
Amin Husni
1
Sin /usr/binembargo , no deberías meterte directamente con los archivos . Y, tu PATHestá mal si /usr/local/binno es antes /usr/bin.
tripleee
El binario pip no existe en /usr/local/bin. Solo está en /home/<user>/.local/biny / o /home/<user>/.local/lib/python<version>/site-packages/pipen las nuevas versiones (v10.0 + no actualice el binario /usr/bin). Por lo tanto, la razón por la que se debe crear una copia o un enlace simbólico del binario en /usr/bino /usr/local/bin(según las preferencias del usuario) para que pip se pueda ejecutar globalmente desde la línea de comandos.
cryptoboy
Los binarios del directorio pip existen y deben vincularse / copiarse de: demon @ Bionic18: ~ / .local / bin $ ls pip pip2 pip2.7 pip3 pip3.6 Los pipvalores binarios predeterminados a la última versión instalada en el sistema
cryptoboy
0

Truco y funciona también

sudo -H pip install lxml

Tanque Tejas
fuente
0

Tuve el mismo error, pero python -m pipseguía funcionando, así que lo arreglé con la opción nuclear sudo python -m pip install --upgrade pip. Lo hizo por mi.

Sergiu
fuente
0

Por lo que vale, tuve el problema con pip(no pip2o pip3):

$ pip -V
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    from pip import main
ImportError: cannot import name main

$ pip2 -V
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)

$ pip3 -V
pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)

De alguna manera (no recuerdo cómo) tenía cosas de Python instaladas en mi ~/.localdirectorio. Después de eliminar el directorio pip desde allí, pipcomencé a trabajar nuevamente.

$ rm -rf /home/precor/.local/lib/python2.7/site-packages/pip
$ pip -V
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)
Michael Burr
fuente
0

Puedes probar esto:

sudo ln -sf $( type -P pip ) /usr/bin/pip
Vitthal Sarode
fuente
3
Si bien este código puede responder la pregunta, sería mejor incluir algo de contexto, explicando cómo funciona y cuándo usarlo. Las respuestas de solo código no son útiles a largo plazo.
Giulio Caccin
0

También me encontré con este problema cuando quería actualizar el sistema pip pip3de 9.0.1 a 19.2.3.

Después de ejecutarse pip3 install --upgrade pip, la pipversión se convierte en 19.2.3. Pero main()se ha trasladado a pip._internalla última versión, que deja pip3roto.

Entonces en el archivo /usr/bin/pip3, reemplace line 9: from pip import maincon from pip._internal import main. El problema se solucionará, funciona igual python2-pip. (Probado en la distribución Ubuntu 18.04)

Según la respuesta de @Vincent H.

Yossarian42
fuente
0

Ejecute los siguientes comandos para hacer la corrección. Después de ejecutar python3 -m pip install --upgrade pip, ejecute el siguiente comando.

hash -r pip

Fuente: https://github.com/pypa/pip/issues/5221

SuperNova
fuente
0

simplemente puede arreglar las rutas pip y pip3 usando update-alternatives

Lo primero que debe verificar es su $PATH ejecución actual echo $PATHy ver si puede encontrar /usr/local/bincuál es el lugar donde generalmente están pip3 y pip

hay un cambio que su sistema está buscando aquí /bin/pipy /bin/pip3 entonces diré que arregle la RUTA agregando~/.bash_profile archivo para que persista

export PATH=$PATH:/usr/local/bin y luego verifica si está fijado con which pipywhich pip3

si no, entonces utilízalo update-alternativespara arreglarlo finalmente

update-alternatives --install /bin/pip3 pip3 /usr/local/bin/pip3 30

y si quieres apuntar pip a pip3 entonces

update-alternatives --install /bin/pip pip /usr/local/bin/pip3 30
uberrebu
fuente
0

¡Esto funcionó para mí!

hash -r pip # or hash -d pip

Ahora, desinstale la versión instalada de pip y vuelva a instalarla utilizando los siguientes comandos.

python -m pip uninstall pip  # sudo
sudo apt install --reinstall python-pip

Si la pepita está rota, use:

python -m pip install --force-reinstall pip

¡Espero eso ayude!

Ebin Zacharias
fuente
-1

import main desde pip._internal

from pip._internal import main

Edite el código pip de

sudo nano /usr/bin/pip3
Akhilesh NS
fuente
¿Puedes editar la respuesta y especificarla mejor? No está muy claro cómo editar el archivo /usr/bin/pip3...
M. Volf
-1

Como dijo @cryptoboy: compruebe qué versión de pip / python ha instalado

 demon@UbuntuHP:~$ pip -V
 demon@UbuntuHP:~$ pip2 -V
 demon@UbuntuHP:~$ pip3 -V

y luego busque bibliotecas no necesarias en su carpeta .local / lib /.

Hice una copia de seguridad de la configuración cuando estaba migrando a Kubuntu más reciente y tenía la carpeta .local / lib / python2.7 / en mi directorio de inicio. Python instalado 3.6. Acabo de eliminar la carpeta anterior y ahora todo funciona muy bien.

Vergil333
fuente
-1

En Debian necesitará actualizar apt primero ...

sudo apt-get update -qq
sudo apt-get install python-pip -qq
sudo pip install pip --upgrade --quiet
sudo pip2 install virtualenv --quiet

Si omite 'sudo apt-get update -qq', su pip se dañará y mostrará el error 'no se puede encontrar el principal'.

Paul Kenjora
fuente
-1

Este error puede ser de permiso. Entonces, pruebe ejecutar el comando con la bandera -H :

sudo -H pip3 install numpy
Mohsen Abasi
fuente
la pregunta dice muy claramente ImportError no es un error de permisos
Anthony Sottile
-1

Use el siguiente comando antes de ejecutar cualquier comando pip

hash -d pip

Funcionará

Muhammad Adil
fuente
1
¿Podría quizás aclarar cómo ayudará / + a eliminar cualquier comentario condescendiente?
elf