¿Cómo puedo detectar y eliminar paquetes de Python instalados a través de pip?

58

Accidentalmente instalé paquetes de Python en mi sistema usando pip en vez de apt-get . Hice esto de dos maneras:

  • usando una versión anterior de virtualenv, me olvidé de anexar --no-site-packages al crear el virtualenv - después de eso cuando llamé a pip install , los paquetes de Python estaban instalados en el sistema en lugar de los virtualenv
  • en una configuración correcta virtualenv, escribí sudo pip install somepackage - el sudo instalado en el sistema en lugar del virtualenv

Me dí cuenta de esto porque escribí pip freeze fuera de un virtualenv y vi algunos paquetes de Python enumerados que no deberían estar allí. Entonces mi pregunta es:

  • ¿cómo identifico todos los paquetes de Python que se han instalado erróneamente en el sistema (es decir, paquetes de Python que aparecen en la lista pip freeze , pero que no se instalaron con apt-get )?
  • ¿cómo los elimino?
pregunta d3vid 08.08.2012 - 08:48

5 respuestas

51

Ubuntu Oneiric (y espero que las versiones más recientes también) instalen paquetes pip en /usr/local/lib/python2.7/dist-packages , y apt packages en /usr/lib/python2.7/dist-packages . Así que solo revisa el directorio anterior y sudo pip uninstall cada paquete que encuentres allí.

    
respondido por el Capi Etheriel 22.02.2013 - 12:48
9

Actualmente, Pip ignora los comandos de desinstalación que intentan desinstalar algo que pertenece al sistema operativo. No se equivoca, como ocurre con un paquete faltante. Entonces, ahora puede desinstalar con el siguiente proceso:

pip freeze > dump.txt

Edite el archivo volcado para eliminar cualquier línea -e "instalación editable", todo después del signo == ( %s;==.*;;g en vim), cambie las líneas nuevas por espacios ( %s;\n; ;g en vim). Luego puede desinstalar todos los paquetes que no son de su propiedad con

cat dump.txt | xargs sudo pip uninstall -y

Tuve que hacer este procedimiento dos veces porque también se instalaron algunos paquetes en ~/.local/lib .

    
respondido por el Henry Schreiner 26.10.2015 - 14:54
6

AFAIK sudo pip install se instalará en /usr/local/lib/pythonVERSION/dist-packages . Necesita ejecutar sudo pip uninstall para desinstalar paquetes de todo el sistema. Parece que pip freeze busca los metadatos del paquete y enumerará todo lo que esté instalado, es decir, tanto de pip como de apt-get fuera de virtualenvs. Hay una opción de -l dentro del entorno virtual para mostrar los paquetes solo aplicables a ese entorno virtual, pero parece ser el caso por defecto también dentro del entorno virtual. Creo que también puedes eliminar paquetes relacionados en /usr/local/lib/pythonVERSION/dist-packages , pero no es un método muy conveniente, supongo.

    
respondido por el sagarchalise 08.08.2012 - 11:01
5

Para eliminar un paquete instalado a través de pip, simplemente presione Ctrl + Alt + T en su teclado para abrir Terminal. Cuando se abra, ejecute el comando a continuación.

pip uninstall < package-name >

Para buscar paquetes

pip search <package you want to search for>

Para determinar qué paquetes de Python fueron instalados por pip, mediante el comando freeze , que le dará una lista de los paquetes instalados y sus versiones. Sugeriría eliminar todas las instancias y reinstalar usando el comando sudo apt-get

sudo apt-get install python3
    
respondido por el Mitch 08.08.2012 - 09:13
-1

Esto tiene algo que ver con Homebrew. No tuve problemas con pyodbc en mi Mac Air hasta que instalé Homebrew y lo usé para algunas cosas. Encontré este hilo en github que termina en una solución que funcionó para mí.

"Si tiene Homebrew, simplemente instale los encabezados ODBC:

$ brew install unixodbc

y ejecute "pip install pyodbc" nuevamente. "

Este 100% me resolvió el problema y solo me tomó un momento. Dale un tiro.

    
respondido por el Pogo 04.07.2017 - 16:15

Lea otras preguntas en las etiquetas