--- title: "Python and the oft-neglected uninstall feature" comment_links: reddit: https://www.reddit.com/r/programming/comments/2d2jwl/pythons_setuppy_and_the_oft_neglected_uninstall/ --- [Wikipedia:Uninstall](https://en.wikipedia.org/wiki/Uninstall) is prefaced with "This article __needs attention from an expert in Software__." `setup.py install` is the base standard install method for Python projects. I found myself wanting to uninstall one of these projects the other day. Turns out it doesn't support uninstall, but Google's top result is a Stackoverflow answer with ~250 votes that says [it can be done no problem](https://stackoverflow.com/questions/1550226/python-setup-py-uninstall). What it doesn't say is that it will silently fail / delete the wrong files when filenames have spaces, along with other important limitations. I looked around at all the other answers and links from google and there was no better answer. How does this happen for a widely used package inluded in Python for at least [15 years](http://hg.python.org/cpython/file/61c91c7f101b/Lib/distutils)? It’s pretty standard fair: uninstall has spotty support across a great many installation technologies. I won't try to draw some broad conclusion. Instead, I wrote a [comprehensive wiki page on Uninstalling setup.py install](https://ofswiki.org/wiki/Uninstalling_setup.py_install).