使用from setuptools.command.install import install
,如果我运行python setup.py install
. 这是相当微不足道的。
目前,脚本只打印一些文本,但我希望它处理安装新包时需要发生的系统更改——例如,备份包正在使用的数据库。
我想为我的包生成一个 Python 轮,然后复制它并将其安装在一组部署机器上。但是,我的自定义安装脚本不再在部署机器上运行。
我究竟做错了什么?这甚至可能吗?
使用from setuptools.command.install import install
,如果我运行python setup.py install
. 这是相当微不足道的。
目前,脚本只打印一些文本,但我希望它处理安装新包时需要发生的系统更改——例如,备份包正在使用的数据库。
我想为我的包生成一个 Python 轮,然后复制它并将其安装在一组部署机器上。但是,我的自定义安装脚本不再在部署机器上运行。
我究竟做错了什么?这甚至可能吗?
Python 包的安装(使用任何类型的打包工具或格式)应侧重于使该包可从 Python 代码中使用。
部署,可能包括数据库修改等绝对超出范围,应由 fab、salt-stack 等其他工具处理。
事实上,某件事看起来相当微不足道,并不意味着人们应该去做。
风险是,您将使您的包安装难以重用,因为它会被其他与纯包安装无关的东西破坏。
挂钩安装过程和修改环境的选项甚至被一些人认为是设计缺陷,导致 Python 打包情况大乱 - 请参阅 Armin Roacher 在Python Packaging: Hate, Hate, Hate Everywhere的章节“PTH: The failed Design that启用这一切”