desinstalación de python setup.py
He instalado un paquete de Python con python setup.py install
.
¿Cómo lo desinstalo?
Nota: Evite el python setup.py install
usopip 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 --record
opció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'
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.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://[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 ensurepip
que 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 grep
ofind
Los ejemplos anteriores suponen que lo ha grep
instalado. 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 find
o simplemente ignore ese filtrado y busque el nombre en una lista un poco más larga de paquetes de Python detectados.
La respuesta número uno tiene problemas:
- No funcionará en mac.
- Si se instala un archivo que incluye espacios u otros caracteres especiales, el
xargs
comando fallará y eliminará cualquier archivo/directorio que coincida con las palabras individuales. - la
-r
entradarm -rf
es 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.py
de 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
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.
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 eligió instalar pip
durante la instalación de Python (en realidad no tiene que elegir porque es el valor predeterminado), pip
ya está instalado. Luego, escriba pip
en el símbolo del sistema y debería aparecer una ayuda. Puede encontrar las instrucciones de uso necesarias allí. Por ejemplo, pip list
le 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) .