使用from setuptools.command.install import install
,如果我运行python setup.py install
,我可以轻松运行自定义安装后脚本。这是fairly trivial要做的。
目前,该脚本除了打印一些文本之外什么都不做,但我希望它能够处理安装新软件包时需要进行的系统更改 - 例如,备份软件包正在使用的数据库。
我想为我的包生成一个Python轮,然后将其复制并安装在一组部署机器上。但是,我的自定义安装脚本不再在部署计算机上运行。
我做错了什么?这甚至可能吗?
答案 0 :(得分:3)
安装Python包(使用任何类型的打包工具或格式)应专注于使该包可用于Python代码。
部署,可能包括数据库修改等等,肯定超出了范围,应由fab,salt-stack等其他工具处理。
事实上,事情似乎相当微不足道并不意味着,人们应该这样做。风险在于,您将使您的软件包安装难以重复使用,因为它会被其他东西破坏,这与纯软件包安装无关。
连接到安装过程和修改环境的选项是有些人甚至被认为是设计上的缺陷,导致Python打包情况严重 - 请参阅Python Packaging: Hate, Hate, Hate Everywhere中的Armin Roacher,章节“PTH:启用失败的设计这一切“
答案 1 :(得分:1)