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.