【发布时间】:2018-04-24 18:35:05
【问题描述】:
我正在使用setuptools.setup() 的data_files 参数将配置文件安装到/etc 和用户主目录。但是,使用pip install <package-name> 更新软件包会在安装新版本之前卸载旧版本和所有配置文件。
如果配置文件已更改,我如何在更新期间保留它们?
【问题讨论】:
标签: python pip installation updates setuptools
我正在使用setuptools.setup() 的data_files 参数将配置文件安装到/etc 和用户主目录。但是,使用pip install <package-name> 更新软件包会在安装新版本之前卸载旧版本和所有配置文件。
如果配置文件已更改,我如何在更新期间保留它们?
【问题讨论】:
标签: python pip installation updates setuptools
我非常怀疑鸡蛋或轮子“安装程序”可以做到这一点。它们是相当原始的分发格式,适用于简单的事情(卸载以前的版本,安装新的覆盖文件),仅此而已。
要执行您想要的操作,您可能需要一个真正的安装程序(rpm 或 deb)——它们可以保存更改的配置文件。但它们很复杂,很难创建格式。
如果您坚持使用简单的轮子,我建议您完全停止分发配置文件。而是分发配置文件的模板并教用户从这些模板创建配置文件。那么新版本只会覆盖模板而不是真正的配置文件。
【讨论】: