安装依赖项的最佳实践?

Wol*_*tan 5 python installation dependencies

我正在考虑一个运送我的应用程序的好方法,这是一个python包.安装我的包很容易使用pythons distutils包.

麻烦来自我的包依赖的依赖.如果依赖是python包我可以使用distutils再次轻松处理它们,但非python包?他们中的一些人在构建和安装它们时甚至需要非常小心,因为需要设置非常特殊的编译器标志等等......

如果我想为用户自动化安装过程,最好的方法是什么?

  1. 编写一个下载并安装依赖项的make文件
  2. 编写一个安装依赖项的脚本
  3. 没有自动化是最好的.只需编写一个手册,告诉用户如何安装依赖项
  4. ???

请提前获取任何答案或建议

tit*_*ito 5

我们有一个名为Kivy(http://kivy.org/)的项目,它有完全相同的问题.在早期阶段,我们已经完成了一个包含每个依赖项的每个设置的一体化包.然而,用户有很多"下一步>"按钮来点击...每个deps(Windows).所以现在,我们已经成功地照顾了自己的依赖关系.

除了linux相关(因为我们所有的deps都已打包在"linux"上),我们采用了为每个平台管理我们命名为"portable-deps"zipfile的方法.然后,我们有一个脚本:

  1. 下载便携式deps拉链
  2. 包括我们项目的最新版本
  3. 在根目录中添加启动器脚本
  4. 压缩根目录,并将zip重命名为project--.zip

有一个MacOSX的特殊情况,其中zip是一个带有一点UI的dmg.

好的部分是用户不必关心deps,开发人员确切地知道项目提供了什么二进制文件:)

有关信息,我们为distutils提供了build_portable命令:


Dav*_*vid 4

帮助您做出决定的最重要的事情是考虑您的受众。

他们是否有技术倾向并且可能愿意遵循指定如何自行构建依赖项的说明?如果是这样,请选择 (3)。如果没有,编写 python 或 shell 脚本或 makefile 来自动执行任务可能是可行的方法。选择您觉得最舒服的写作方式。