Alex Rivera | Logout

Distributing a large Python-enabled application: best practices

Asked 2011-09-15T08:32:43.013
10

There is a large Python application that consists of numerous third-party packages and binary libraries. Here is an overview of my requirements:

  • Cross-platform (currently Windows and modern Linux distributions)
  • Installing lots (say >100 MB) of binary libraries (DLLs on Windows)
  • Installing third-party Python packages (some of them cannot be installed on Windows using tools like easy_install)
  • Installing Visual Studio redistributable package it needed
  • Preserving file layout for my package if possible (no compressed eggs)
  • A clear way to remove all packages and libraries
  • Distribute test suite (py.test in my case)
  • Option for no-source distribution (.pyc-only)

The application should be "portable" at least as a Python package (can be installed anywhere using VirtualEnv).

What are my choices? Should I just stick with setuptools (distribute)? Should I roll out custom installer?

The application being developed is proprietary, but it provides Python API for developers, and I want it to look and feel as pythonish and hackerish as possible.

Edit
Report

1 Answer

1

Py2Exe can done most of the prerequisites, and dependencies, to remove and additional install/uninstall you could use any msi installer creator.

answered 2011-09-21T01:06:09.023

Your Answer