distutils: How to pass a user defined parameter to setup.py?

前端 未结 8 991
温柔的废话
温柔的废话 2020-11-30 21:32

Please prompt me how to pass a user-defined parameter both from the command line and setup.cfg configuration file to distutils\' setup.py script. I want to write a setup.py

8条回答
  •  星月不相逢
    2020-11-30 22:31

    As Setuptools/Distuils are horribly documented, I had problems finding the answer to this myself. But eventually I stumbled across this example. Also, this similar question was helpful. Basically, a custom command with an option would look like:

    from distutils.core import setup, Command
    
    class InstallCommand(Command):
        description = "Installs the foo."
        user_options = [
            ('foo=', None, 'Specify the foo to bar.'),
        ]
        def initialize_options(self):
            self.foo = None
        def finalize_options(self):
            assert self.foo in (None, 'myFoo', 'myFoo2'), 'Invalid foo!'
        def run(self):
            install_all_the_things()
    
    setup(
        ...,
        cmdclass={
            'install': InstallCommand,
        }
    )
    

提交回复
热议问题