views:

47

answers:

3

I have installed a python application with this setup.py:

#!/usr/bin/env python

from distutils.core import setup
from libyouandme import APP_NAME, APP_DESCRIPTION, APP_VERSION, APP_AUTHORS, APP_HOMEPAGE, APP_LICENSE

setup(
    name=APP_NAME.replace(" ","-").lower(),
    version=APP_VERSION,
    description=APP_DESCRIPTION,
    author="John G",
    author_email="[email protected]",
    url=APP_HOMEPAGE,
    license=APP_LICENSE,
    scripts=["youandme.py"],
    packages=["libyouandme"],
    data_files=[
        ('share/applications', ['youandme.desktop']),
        ('usr/share/icons/hicolor/16x16/apps', ['icons/hicolor/16x16/apps/you.png']),
        ('usr/share/icons/hicolor/22x22/apps', ['icons/hicolor/22x22/apps/you.png']),
        ('usr/share/icons/hicolor/48x48/apps', ['icons/hicolor/48x48/apps/you.png'])],
)

How can I remove this application from my ubuntu machine ?

Do I can do this with distutils ?

+2  A: 

AFAIK only pip allows to uninstall python modules, so if you don't have it installed, you can install it with

sudo easy_install pip

and then use pip to uninstall your module

sudo pip uninstall <module_name>

where module_name is the value passed in the name argument of the setup function.

Edit: just saw you tagged your question with "python-3.x", and there is no 3.x version for pip yet, so if you need to uninstall a python3.x module, this answer doesn't fit.

MatToufoutu
@MatToufoutu: i think pip can't uninstall package that was installed with setup.py install or develop see this : http://pip.openplans.org/ section uninstall
singularity
@singularity: hmm, strange, i installed many homemade libs using `python setup.py install` and i've always been able to remove them with pip, even if pip's documentation seems to tell i shouldn't have been able to. I might have missed something...
MatToufoutu
@MatToufoutu: yes it sound weird , because for getting pip uninstall to work, pip create a meta-data for each installed package so it can track all the files that have been created , so like that it can remove them when you can pip uninstall , but distuils don't do this, and know like i said in my answer distutils2 can do this as well but they never program to add this feature to the distutils, you can see it here: http://bugs.python.org/issue4673
singularity
+1  A: 

The disutils version 1 don't support uninstall command and i have also included a link for you in the comment to see it, but just for info disutils2 now support uninstall command , they have been working on it in the past GSoC, you can check this link

The only way for you to "uninstall" your package is by removing all your file by hand, i can see that you have some files in /usr/share .. , i don't know if you know this already but you can use python install.py develop when developing your module , it will make change and remove easily .

singularity
+1  A: 

Install the checkinstall Ubuntu package. checkinstall monitors the installation procedure and creates a deb package. This allows you to use regular package management commands to remove the software.

sudo checkinstall -D --fstrans=no python setup.py

creates a .deb package, and installs the python module again. You'll be asked a few questions. The default answers should be fine.

To remove the module:

sudo dpkg -r <PACKAGE_NAME>

PS. I've heard that some installation programs are not compatible with checkinstall, though I've never run into any problems myself.

unutbu