desinstalación de python setup.py

Resuelto flybywire asked hace 15 años • 18 respuestas

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

¿Cómo lo desinstalo?

flybywire avatar Oct 11 '09 16:10 flybywire
Aceptado

Nota: Evite el python setup.py installusopip install .

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

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

Para registrar una lista de archivos instalados, puede utilizar:

python setup.py install --record files.txt

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

xargs rm -rf < files.txt

O si estás ejecutando Windows, usa Powershell:

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

Luego borre también el directorio que lo contiene, por ejemplo /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'
Martin v. Löwis avatar Oct 11 '2009 09:10 Martin v. Löwis

Para mí, lo siguiente funciona principalmente:

tener pip instalado, por ejemplo:

$ easy_install pip

Compruebe cómo se llama su paquete instalado desde el punto de vista de pip:

$ pip freeze

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

Luego desinstale el paquete:

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

Si solicita confirmación para eliminar el paquete, entonces tiene suerte 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 en algunos casos excepcionales esto puede fallar.

Aquí hay una muestra real de mi prueba local con el paquete nombrado ttr.rdstmcen 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://[email protected]/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 escrito anteriormente sigue siendo válido; de todos modos, hay pequeñas modificaciones disponibles ahora.

Instale pip en Python 2.7.9 y Python 3.4

Las versiones recientes de Python vienen con un paquete ensurepipque permite instalar pip incluso sin conexión:

$ python -m asegurarpip --actualizar

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

Usando grepofind

Los ejemplos anteriores suponen que lo ha grepinstalado. Tenía (en el momento en que tenía MS Windows en mi máquina) instalado un conjunto de utilidades de Linux (incluido grep). Alternativamente, use MS Windows nativo findo simplemente ignore ese filtrado y busque el nombre en una lista un poco más larga de paquetes de Python detectados.

Jan Vlcinsky avatar Oct 09 '2012 10:10 Jan Vlcinsky

La respuesta número uno tiene problemas:

  • No funcionará en mac.
  • Si se instala un archivo que incluye espacios u otros caracteres especiales, el xargscomando fallará y eliminará cualquier archivo/directorio que coincida con las palabras individuales.
  • la -rentrada rm -rfes innecesaria y, en el peor de los casos, podría eliminar cosas que no desea.

En cambio, para tipo Unix:

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 ventanas:

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

También hay problemas irresolubles con la desinstalación setup.pyde install que no le molestarán en un caso típico. Para obtener una respuesta más completa, consulte esta página wiki:

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

Ian Kelling avatar Aug 08 '2014 17:08 Ian Kelling

Primero registre los archivos que ha instalado. Puedes repetir este comando, incluso si ya has ejecutado anteriormente setup.py install:

python setup.py install --record files.txt

Cuando quieras desinstalar puedes 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 esa lista.

nathan avatar Oct 28 '2010 12:10 nathan

Ahora Python te da la opción de instalar pipdurante la instalación (estoy en Windows, ¡y al menos Python lo hace para Windows!). Teniendo en cuenta que eligió instalar pipdurante la instalación de Python (en realidad no tiene que elegir porque es el valor predeterminado), pipya está instalado. Luego, escriba pipen el símbolo del sistema y debería aparecer una ayuda. Puede encontrar las instrucciones de uso necesarias allí. Por ejemplo, pip listle muestra la lista de paquetes instalados. Puedes usar

pip uninstall package_name

para desinstalar cualquier paquete que ya no quieras. Lea más aquí (documentación de pip) .

Sнаđошƒаӽ avatar Sep 03 '2015 17:09 Sнаđошƒаӽ