Accidentalmente instalé paquetes de Python en mi sistema usando en pip
lugar de apt-get
. Hice esto de dos maneras:
- usando una versión anterior de virtualenv, olvidé agregarlo
--no-site-packages
al crear virtualenv; después de eso, cuando llamépip install
, los paquetes de Python se instalaron en el sistema en lugar del virtualenv - en un virtualenv correctamente configurado, escribí
sudo pip install somepackage
: el sudo instalado en el sistema en lugar del virtualenv
Me di 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 ahora mi pregunta es:
- ¿Cómo identifico todos los paquetes de Python que se instalaron por error en el sistema (es decir, los paquetes de Python que aparecen en la
pip freeze
lista, pero que no se instalaronapt-get
)? - ¿Cómo los elimino?
python
package-management
pip
david.libremone
fuente
fuente
sudo rm -r /usr/local/lib/python2.7
. Hasta aquí todo bien./usr/local/lib/python3.5
, y después de un tiempo una actualización delupdate-notifier-common
paquete falló debido a la falta delsix
paquete Python 3 . Terminé instalandosix
consudo -H pip3 install six
./usr/local/bin/
(hace un tiempo simplemente eliminé/usr/local/lib/python3.5
y cambié a conda ).Pip actualmente ignora los comandos de desinstalación que intentan desinstalar algo propiedad del sistema operativo. No se produce un error, como lo hace con un paquete faltante. Entonces, ahora puede desinstalar con el siguiente proceso:
Edite el archivo volcado para eliminar las
-e
líneas de "instalación editable", todo después del==
signo (%s;==.*;;g
en vim), cambie las nuevas líneas por espacios (%s;\n; ;g
en vim). Luego puede desinstalar todos los paquetes que no sean de su propiedad conTuve que hacer este procedimiento dos veces, porque también se instalaron algunos paquetes
~/.local/lib
.fuente
sudo pip uninstall -y $(pip freeze | sed 's;==.*;;g' | tr '\n' ' ')
pip
. En archlinuxpip
felizmente desinstala los paquetes del sistema. Por otro lado,pip
en debian jessie se queja y comete errores:Not uninstalling virtualenv at /usr/lib/python3/dist-packages, owned by OS
AFAIK
sudo pip install
se instalará en/usr/local/lib/pythonVERSION/dist-packages
. Debe ejecutarsudo pip uninstall
para desinstalar paquetes en todo el sistema. Parece quepip freeze
busca los metadatos del paquete y enumerará todo lo instalado, es decir, tanto desde pip como desde apt-get fuera de virtualenvs. Existe una-l
opción dentro del entorno virtual para enumerar los paquetes solo aplicables a ese entorno virtual, pero parece ser el caso predeterminado también dentro del entorno virtual. Creo que también puedes eliminar paquetes relacionados,/usr/local/lib/pythonVERSION/dist-packages
pero supongo que no es un método muy conveniente.fuente
Para eliminar un paquete instalado a través de pip, simplemente presione Ctrl+ Alt+ Ten su teclado para abrir Terminal. Cuando se abra, ejecute el siguiente comando.
Para buscar paquetes
Para determinar qué paquetes de Python se instalaron mediante pip, mediante el
freeze
comando, que le dará una lista de los paquetes instalados y sus versiones. Sugeriría eliminar todas las instancias y volver a instalar usando elsudo apt-get
comandofuente
pip uninstall
si lo usésudo pip install
en primer lugar?pip freeze
solo muestra los paquetes que instaló (AFAICS).Necesitaba limpiar el espacio en disco de los paquetes de Python de forma segura. Si bien esta es una limpieza completa de los paquetes, también necesitaba mover las versiones de Python, por lo que no necesitaba paquetes antiguos. Usé lo siguiente para obtener todos los nombres de mis paquetes, omitir las primeras 2 líneas y tomar la primera columna y desinstalar sin interacción del usuario:
fuente
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:
y ejecute "pip install pyodbc" nuevamente ".
Esto 100% resolvió el problema para mí y solo tomó un momento. Dale un tiro.
fuente