Enthought Deployment Manager (EDM)

The Next Generation Python Environment and Package Manager from Enthought

Enthought Deployment Manager, or EDM, is Enthought’s new environment and package manager. With EDM you can quickly create multiple self-contained Python environments and install and manage sets of Python packages with consistent dependencies. We use the term "Deployment" in Enthought Deployment Manager to indicate that it is managing more than just packages or distributions; the long-term view for this tool is to deliver applications as well.

Environment Management

EDM creates self-contained environments with their own Python executable and set of packages. This allows users to reproduce a colleague or partner's environment for co-development, troubleshooting, or testing or to work on different projects with different sets of dependencies.

Package Management

Dependency information is included in Enthought's curated packages to allow EDM's dependency solver to create sets of reliably consistent packages. This allows users to have one set of package versions in a known production state while developing an experimental state for the next release.

Legacy EPD users will recognize the edm command line tool as an update to Enstaller's enpkg.

Features

EDM implements the best principles of virtualenv managers such as virtualenvwrapper and pew as well as the Ruby Version Manager (rvm), but avoiding the pitfalls of virtual environments by providing robust single-layer Python environments similar to legacy EPD. It also derives some ideas from Nix. EDM provides:

  • The ability to create multiple self-contained environments

  • A state-of-the-art dependency solver with support for resolving conflicts and other features available in advanced package managers, such as the ability of multiple packages to satisfy a requirement (the "PROVIDES" clause), etc.

  • Access to the existing set of Enthought-built and tested Python packages on Linux, Mac OS X, and Windows (more than 450 packages for Python 2, more than 200 and growing for Python 3)

  • A well-defined deployment API useable by third party programs (e.g. IDEs, GUIs)

  • A small distribution footprint, ~10 Mb single file binary

  • Native installers for Windows (.msi), Mac OS X (.pkg), RHEL/Fedora (.rpm), and Debian/Ubuntu (.deb)

  • Support (starting with select platforms) for multiple Python versions (both Python 2 and Python 3), implementations (cpython, pypy) and even other languages (Julia)

  • Extensive inline documentation

Want to give EDM a try?

Download Installers

View documentation here.