我正在尝试创建一个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 在命令执行之前没有安装。
任何帮助都会受到赞赏,即使它是指向一个新的方向。