Search code examples
pythondistutils

How to extend distutils with a simple post install script?


I need to run a simple script after the modules and programs have been installed. I'm having a little trouble finding straight-forward documentation on how to do this. It looks like I need to inherit from distutils.command.install, override some methods and add this object to the setup script. The specifics are a bit hazy though and it seems like a lot of effort for such a simple hook. Does anyone know an easy way to do this?


Solution

  • I dug through distutils source for a day to learn enough about it to make a bunch of custom commands. It's not pretty, but it does work.

    import distutils.core
    from distutils.command.install import install
    ...
    class my_install(install):
        def run(self):
            install.run(self)
            # Custom stuff here
            # distutils.command.install actually has some nice helper methods
            # and interfaces. I strongly suggest reading the docstrings.
    ...
    distutils.core.setup(..., cmdclass=dict(install=my_install), ...)