关于分发:分发大型支持Python的应用程序:最佳实践

Distributing a large Python-enabled application: best practices

有一个大型的python应用程序,它由许多第三方包和二进制库组成。以下是我的要求概述:

  • 跨平台(目前是Windows和现代Linux发行版)
  • 安装大量二进制库(例如大于100 MB)(Windows上的DLL)
  • 安装第三方python软件包(有些软件包不能使用easy_install等工具安装在Windows上)
  • 安装所需的Visual Studio可再发行软件包
  • 如果可能,为我的包保留文件布局(没有压缩的鸡蛋)
  • 删除所有包和库的清晰方法
  • 分发测试套件(在我的例子中是py.test)
  • 无源分发选项(仅限.pyc)

应用程序应该是"可移植的",至少是一个python包(可以使用virtualenv安装在任何地方)。

我的选择是什么?我应该坚持使用setuptools吗(distribute)?我应该推出定制安装程序吗?

正在开发的应用程序是专有的,但它为开发人员提供了PythonAPI,我希望它看起来和感觉尽可能像pythonish和hacker。


Py2Exe可以完成大多数先决条件和依赖项,以删除和额外的安装/卸载,您可以使用任何MSI安装程序创建者。