Распространение большого приложения с поддержкой Python: лучшие практики

Существует большое приложение Python, состоящее из множества сторонних пакетов и двоичных библиотек. Вот обзор моих требований:

  • Кросс-платформенный (в настоящее время Windows и современные дистрибутивы Linux)
  • Установка лотов (скажем > 100 МБ) двоичных библиотек (DLL в Windows)
  • Установка сторонних пакетов Python (некоторые из них не могут быть установлены в Windows с помощью таких инструментов, как easy_install)
  • Установка распространяемого пакета Visual Studio
  • Сохранение макета файла для моего пакета, если это возможно (без сжатых яиц)
  • Ясный способ удалить все пакеты и библиотеки
  • Распределите набор тестов (py.test в моем случае)
  • Опция для распределения без источника (.pyc только)

Приложение должно быть "переносимым", по крайней мере, как пакет Python (может быть установлен в любом месте с помощью VirtualEnv).

Каковы мои выборы? Должен ли я просто придерживаться setuptools (distribute)? Должен ли я развертывать пользовательский установщик?

Разработанное приложение является проприетарным, но предоставляет разработчикам Python API, и я хочу, чтобы он выглядел и чувствовал себя как питон и хакерский, насколько это возможно.

Ответ 1

Py2Exe может выполнить большинство предварительных условий и зависимостей, для удаления и дополнительной установки/удаления вы можете использовать любой установщик установщика MSI.