make self-extracting virtualenvs
make a self-extracting virtualenv from directories or URLs of packages
To package up all files in a virtualenvs source directory (e.g.):
python path/to/carton.py myproject project/src/*
This will create a self-extracting file, myproject.py, that will unfold a virtualenv with the specified packages setup for development
The sources may be directories, local or HTTP-accessible tarballs, or ordinary files. The setup.py`s found in the `src directory after extraction will be run (via python setup.py develop) in the order they are provided. This makes it possible to have completely local dependencies (without touching the net) by correctly specifying the source order. If a setup.py is overwritten from a later source, it will not be rerun (known limitation).
The extracted virtualenv will be created in the current directory and will have the same name as provided initially (e.g. myproject) unless –env is specified.
Normally, the entire contents of source directories are compressed and packaged as-is. When running with the –package flag, a source tarball is produced via python setup.py sdist if the directory contains a top-level setup.py.
Since directories are compressed as-is, portable file-based VCS repositories, such a mercurial and git, may be cartoned this way (though note that newer repositories may not be backwards-compatible with older clients).