在单独安装的软件包中为setup.py提供自定义命令类

时间:2016-05-31 16:58:10

标签: python-3.x setuptools setup.py

我正在尝试创建一个python包,它实现setuptools.setup()的自定义命令类,以便在其他不相关的包中使用' setup.py 脚本。理想情况下,我希望能够将此包包含在setup_requires的{​​{1}}参数中,并使自定义命令类在执行其余设置活动之前生效。 setup()是否提供某种钩子来支持这个用例?如果没有,我如何在使用我的软件包时最小化必须出现在 setup.py 脚本中的样板量,同时仍然保证我的软件包在安装过程中可用?这是针对我正在构建的自动化框架,因此最大限度地减少对客户端软件包的影响。代码和对最终用户行为的依赖是必须的。

以下是一些示例代码......

my_custom_setup_package

setup()

client_package setup.py

from setuptools.command.install import install as _install

class install(_install):

    def run(self):
        result = super().run()

        # If the installed package has the required hooks:
            # Perform some custom post-installation actions

client_package 运行from setuptools import setup # No cmdclass argument is given, because I can't count on # my_custom_setup_package to be installed yet. setup( ... setup_requires=['my_custom_setup_package'], ... ) 时,即使 my_custom_setup_package 在命令执行之前没有安装。

任何帮助都会受到赞赏,即使它是指向一个新的方向。

0 个答案:

没有答案