¿Puede simplemente eliminar el directorio de su instalación de Python, o hay algún archivo persistente que deba eliminar?
92
Varía según las opciones a las que pasa install
y el contenido de los archivos de configuración de distutils en el sistema / en el paquete. No creo que ningún archivo se modifique fuera de los directorios especificados de esta manera.
En particular, distutils no tiene un comando de desinstalación en este momento.
También es digno de mención que eliminar un paquete / huevo puede causar problemas de dependencia; las utilidades como easy_install
intentan aliviar dichos problemas.
Las tres cosas que se instalan y que deberá eliminar son:
Ahora en mi sistema Linux estos viven en:
Pero en un sistema Windows es más probable que estén completamente dentro del directorio de distribución de Python. No tengo ni idea de OSX, excepto que es más probable que siga el patrón de Linux.
fuente
Otro truco basado en sellos de tiempo:
touch /tmp/ts
python setup.py install --prefix=<PREFIX>
find <PREFIX> -cnewer /tmp/ts | xargs rm -r
fuente
| xargs rm -r
. Recomiendo revisar cada archivo manualmente . En ext4 (y otros sistemas de archivos), esto tambiénfind
enumerará todas las carpetas . Si su prefijo era/usr
, lo eliminará/usr/*
.Sí, es seguro simplemente eliminar todo lo que distutils instalado. Eso se aplica a las carpetas instaladas o archivos .egg. Naturalmente, cualquier cosa que dependa de ese código ya no funcionará.
Si desea que vuelva a funcionar, simplemente vuelva a instalarlo.
Por cierto, si está usando distutils, también considere usar la función de múltiples versiones. Le permite tener varias versiones de un solo paquete instalado. Eso significa que no necesita eliminar una versión anterior de un paquete si simplemente desea instalar una versión más nueva.
fuente
En ubuntu 12.04, descubrí que el único lugar donde debe buscar de forma predeterminada es debajo
¡Y simplemente elimine la carpeta y el archivo asociados, si los hay!
fuente
Si esto es para propósitos de prueba y / o desarrollo, setuptools tiene un comando de desarrollo que se actualiza cada vez que realiza un cambio (por lo que no tiene que desinstalar y reinstalar cada vez que realiza un cambio). Y también puede desinstalar el paquete usando este comando.
Si usa esto, todo lo que declare como un script se dejará como un archivo persistente.
fuente
install --record
+xargs rm
elimina todos los archivos y deja directorios vacíos.
Eso no es ideal, debería ser suficiente para evitar conflictos de paquetes.
Y luego puede terminar el trabajo manualmente si lo desea leyendo
files.txt
, o ser más valiente y automatizar la eliminación de directorios vacíos también.Un ayudante seguro sería:
Probado en Python 2.7.6, Ubuntu 14.04.
fuente
para Python en Windows:
fuente
Acabo de desinstalar un paquete de Python y, aunque no estoy seguro de haberlo hecho a la perfección, tengo una confianza razonable.
Comencé obteniendo una lista de todos los archivos relacionados con Python, ordenados por fecha, asumiendo que todos los archivos de mi paquete tendrán más o menos la misma marca de tiempo, y ningún otro archivo la tendrá.
Afortunadamente, tengo Python instalado debajo
/opt/Python-2.6.1
; si hubiera estado usando Python que viene con mi distribución de Linux, habría tenido que rastrearlo todo/usr
, lo que habría llevado mucho tiempo.Luego examiné esa lista y noté con alivio que todo lo que quería destruir consistía en un directorio
/opt/Python-2.6.1/lib/python2.6/site-packages/module-name/
y un archivo/opt/Python-2.6.1/lib/python2.6/site-packages/module-x.x.x_blah-py2.6.egg-info
.Así que los borré.
Así es como obtuve la lista de archivos ordenados por fecha:
find "$@" -printf '%T@ ' -ls | sort -n | cut -d\ -f 2-
(Por cierto, creo que tiene que ser GNU "find"; el sabor que obtienes en OS X no conoce "-printf '% T @'")
Lo uso todo el tiempo.
fuente
Para Windows 7,
Panel de control -> Programas -> Desinstalar
, luego
elija el paquete de python para eliminar.
fuente
En Mac OSX, elimine manualmente estos 2 directorios en su ruta .ToPython / site-packages / funcionará:
por ejemplo, para eliminar pyasn1 , que es un proyecto instalado de distutils:
Para saber dónde están los paquetes de su sitio:
fuente
ERROR: flake8 3.7.9 has requirement pycodestyle<2.6.0,>=2.5.0, but you'll have pycodestyle 2.3.1 which is incompatible. ERROR: nuscenes-devkit 1.0.8 has requirement motmetrics<=1.1.3, but you'll have motmetrics 1.2.0 which is incompatible. Installing collected packages: descartes, future, torch, cachetools, torchvision, flake8-import-order, xmltodict, entrypoints, flake8, motmetrics, nuscenes-devkit Attempting uninstall: torch Found existing installation: torch 1.0.0 Uninstalling torch-1.0.0: Successfully uninstalled torch-1.0.0 Attempting uninstall: torchvision Found existing installation: torchvision 0.2.1 Uninstalling torchvision-0.2.1: Successfully uninstalled torchvision-0.2.1 Attempting uninstall: entrypoints Found existing installation: entrypoints 0.2.3 ERROR: Cannot uninstall 'entrypoints'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
Luego escribo:
conda uninstall entrypoints pip install --upgrade pycodestyle pip install nuscenes-devkit
¡Hecho!
fuente