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

And*_*w T 10 python distribution setuptools

有一个庞大的Python应用程序,包含许多第三方包和二进制库.以下是我的要求概述:

  • 跨平台(目前是Windows和现代Linux发行版)
  • 安装批次(比方说> 100 MB)的二进制库(Windows上的DLL)
  • 安装第三方Python包(其中一些不能使用像这样的工具安装在Windows上easy_install)
  • 安装所需的Visual Studio可再发行组件包
  • 如果可能,保留我的包的文件布局(没有压缩蛋)
  • 删除所有包和库的明确方法
  • 分发测试套件(py.test在我的情况下)
  • .pyc无源分发选项(-only)

该应用程序至少应该是"可移植的"Python包(可以使用VirtualEnv安装在任何地方).

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

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

wal*_*cir 1

Py2Exe 可以完成大部分先决条件和依赖项,您可以使用任何 msi 安装程序创建器来删除和附加安装/卸载。