Pregunta desinstalación de python setup.py


He instalado un paquete de Python con python setup.py install.

¿Cómo lo desinstalo?


642
2017-10-11 09:06


origen


Respuestas:


Debe eliminar todos los archivos de forma manual y también deshacer cualquier otra cosa que la instalación haya realizado manualmente.

Si no conoce la lista de todos los archivos, puede reinstalarlo con el --record opción, y eche un vistazo a la lista que esto produce.

Para registrar una lista de archivos instalados, puede usar:

python setup.py install --record files.txt

Una vez que quiera desinstalar, puede usar xargs para realizar la eliminación:

cat files.txt | xargs rm -rf

O si está ejecutando Windows, use Powershell:

Get-Content files.txt | ForEach-Object {Remove-Item $_ -Recurse -Force}

Luego, elimine también el directorio que lo contiene, p. /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/my_module-0.1.egg/ en macOS. No tiene archivos, pero Python seguirá importando un módulo vacío:

>>> import my_module
>>> my_module.__file__
None

Una vez eliminado, Python muestra:

>>> import my_module
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'my_module'

823
2017-10-11 09:12



Para mí, lo siguiente funciona principalmente:

tener pip instalado, por ejemplo:

$ easy_install pip

Verifique, cómo es el nombre de su paquete instalado desde el punto de vista de pip:

$ pip freeze

Esto debe enumerar los nombres de todos los paquetes que haya instalado (y que fueron detectados por pip). El nombre puede ser algo largo, luego use solo el nombre del paquete que se muestra en el y después de #egg=. También puede, en la mayoría de los casos, ignorar la parte de la versión (lo que sigue == o -)

Luego desinstala el paquete:

$ pip uninstall package.name.you.have.found

Si solicita confirmación sobre la eliminación del paquete, entonces eres afortunado y se eliminará.

pip detectará todos los paquetes, que fueron instalados por pip. También detectará la mayoría de los paquetes instalados a través de easy_install o setup.py, pero esto puede fallar en algunos casos.

Aquí hay una muestra real de mi prueba local con un paquete llamado ttr.rdstmc en MS Windows.

$ pip freeze |grep ttr
ttr.aws.s3==0.1.1dev
ttr.aws.utils.s3==0.3.0
ttr.utcutils==0.1.1dev

$ python setup.py develop
.....
.....
Finished processing dependencies for ttr.rdstmc==0.0.1dev

$ pip freeze |grep ttr
ttr.aws.s3==0.1.1dev
ttr.aws.utils.s3==0.3.0
-e hg+https://vlcinsky@bitbucket.org/vlcinsky/ttr.rdstmc@d61a9922920c508862602f7f39e496f7b99315f0#egg=ttr.rdstmc-dev
ttr.utcutils==0.1.1dev

$ pip uninstall ttr.rdstmc
Uninstalling ttr.rdstmc:
  c:\python27\lib\site-packages\ttr.rdstmc.egg-link
Proceed (y/n)? y
  Successfully uninstalled ttr.rdstmc

$ pip freeze |grep ttr
ttr.aws.s3==0.1.1dev
ttr.aws.utils.s3==0.3.0
ttr.utcutils==0.1.1dev

Editar 2015-05-20

Todo lo que está escrito arriba todavía se aplica, de todos modos, ahora hay pequeñas modificaciones disponibles.

Instalar pip en python 2.7.9 y python 3.4

Las versiones recientes de Python vienen con un paquete ensurepip permitiendo instalar pip incluso estando desconectado:

$ python -m ensurepip --upgrade

En algunos sistemas (como Debian Jessie), esto no está disponible (para evitar la instalación de Python del sistema).

Utilizando grep o find

Los ejemplos anteriores asumen, usted tiene grep instalado Tenía (cuando tenía MS Windows en mi máquina) instalado el conjunto de utilidades de Linux (incluido grep). Alternativamente, use MS Windows nativo find o simplemente ignore ese filtro y encuentre el nombre en una lista más larga de paquetes Python detectados.


198
2017-10-09 10:19



La respuesta n. ° 1 tiene problemas:

  • No funcionará en mac.
  • Si se instala un archivo que incluye espacios u otro especial personajes, el xargs comando fallará y eliminará archivos / directorios que coinciden con las palabras individuales.
  • el -r en rm -rf es innecesario y en el peor podría eliminar cosas que no quiero.

En cambio, para unix como:

sudo python setup.py install --record files.txt
# inspect files.txt to make sure it looks ok. Then:
tr '\n' '\0' < files.txt | xargs -0 sudo rm -f --

Y para Windows:

python setup.py bdist_wininst
dist/foo-1.0.win32.exe

También hay problemas insolvables con la desinstalación setup.py instala lo que no te molestará en un caso típico. Para una respuesta más completa, mira esta página wiki:

https://ofswiki.org/wiki/Uninstalling_setup.py_install


64
2017-08-08 17:34



Primero grabe los archivos que ha instalado. Puedes repetir este comando, incluso si ya corriste setup.py install:

python setup.py install --record files.txt

Cuando quiera desinstalar, puede simplemente:

sudo rm $(cat files.txt)

Esto funciona porque el comando rm toma una lista de archivos separados por espacios en blanco para eliminar y su registro de instalación es solo una lista.


27
2017-10-28 12:00



Ahora Python te da la opción de instalar pip durante la instalación (¡estoy en Windows, y al menos Python lo hace para Windows!). Teniendo en cuenta que ha elegido instalar pip durante la instalación de python (en realidad no tiene que elegir porque es el predeterminado), pip ya está instalado para ti. Luego, escribe pip en el símbolo del sistema, debería ver aparecer una ayuda. Puede encontrar las instrucciones de uso necesarias allí. P.ej. pip list le muestra la lista de paquetes instalados. Puedes usar

pip uninstall package_name

para desinstalar cualquier paquete que ya no quieras. Lee mas aquí (documentación de pip).


11
2017-09-03 17:44



La manera perezosa: simplemente desinstale desde el menú de instalación de Windows (si está usando Windows) o desde el comando rpm, siempre que primero lo vuelva a instalar después de crear un paquete de distribución.

Por ejemplo,

python setup.py bdist_wininst
dist/foo-1.0.win32.exe

("foo" es un ejemplo, por supuesto).


8
2017-10-11 09:13



Vaya a su directorio de paquetes python y elimine su archivo .egg, p.ej.: En python 2.5 (ubuntu): /usr/lib/python2.5/site-packages/

En python 2.6 (ubuntu): /usr/local/lib/python2.6/dist-packages/


5
2017-10-11 09:13



Probablemente puede hacer esto como una alternativa:

1) Obtenga la versión de Python -

[linux machine]# python
Python 2.4.3 (#1, Jun 18 2012, 14:38:55) 

-> El comando de arriba le da la versión actual de Python que es 2.4.3

2) Obtener el directorio de instalación de python -

[linux machine]# whereis python
python: /usr/bin/python /usr/bin/python2.4 /usr/lib/python2.4 /usr/local/bin/python2.5 /usr/include/python2.4 /usr/share/man/man1/python.1.gz

-> Desde arriba del comando puede obtener el directorio de instalación que es - /usr/lib/python2.4/site-packages

3) Desde aquí puedes eliminar los paquetes y los archivos de huevo de python

[linux machine]# cd /usr/lib/python2.4/site-packages
[linux machine]# rm -rf paramiko-1.12.0-py2.4.egg paramiko-1.7.7.1-py2.4.egg paramiko-1.9.0-py2.4.egg

Esto funcionó para mí ... Y pude desinstalar el paquete que me preocupaba :)


3
2017-12-26 06:44



Creo que puedes abrir setup.py, ubicar el nombre del paquete y luego pedirle a pip que lo desinstale.

Suponiendo que el nombre esté disponible en una variable 'METADATA':

pip uninstall $(python -c "from setup import METADATA; print METADATA['name']")

3
2017-10-25 03:57



No respondiendo exactamente la pregunta, pero algo que me ayuda todos los días:

Instale sus paquetes con

pip install .

Esto pone el paquete en $HOME/.local. Desinstalar con

pip uninstall <package_name>

2
2018-02-16 11:49