安装依赖项的最佳实践?
问题描述:
我正在考虑运送我的应用程序,这是一个python包的好方法。安装我的软件包很容易使用pythons distutils软件包。安装依赖项的最佳实践?
问题出在我的软件包所依赖的依赖项上。如果依赖关系是python包,我可以使用distutils轻松处理它们,但使用非python包?其中一些甚至在构建和安装时需要非常小心,因为需要设置非常特殊的编译器标志等等。
如果我想为用户自动安装过程,最好的方法是什么去做吧?
- 编写用于下载和安装的依赖
- 编写安装依赖
- 没有自动化是最好的脚本生成文件。只需编写一本手册,告诉用户如何安装 依赖关系
- ???
THX提前任何答复或建议
答
最重要的事情,以帮助您决定是要考虑你的听众。
他们在技术上倾向于并且可能会遵循指令说明如何自行构建依赖关系?如果是这样,请跟(3)。如果没有,编写一个python或shell脚本或者一个makefile来自动完成这个任务可能是最好的选择。选择你感觉最舒服的书写方式。
答
我们有一个名为Kivy的项目(http://kivy.org/),它们的问题完全相同。在早期阶段,我们已经完成了一个包含每个依赖项的每个设置的一体化软件包。然而,用户有很多“下一步>”按钮点击...每个代表(Windows)。所以现在,我们已经设法照顾自己的依赖。
除了与linux有关(因为我们所有的代码已经打包在“linux”上),我们已经采取了管理每个平台所谓的“portable-deps”zip文件的方法。然后,我们有一个脚本:
- 下载便携式DEPS拉链
- 包括最新版本的我们的项目
- 加入启动脚本,在根目录下
- 邮编根目录下,并将zip重命名为project-.zip
对于MacOSX的特殊情况,其中zip是带有少许UI的dmg。
好部分是,用户不必关心DEPS,和开发人员确切地知道二进制文件与项目:)
有关信息,我们build_portable命令对distutils的交付: