shrinkwrap: Python packaging for everything =========================================== Shrinkwrap provides tools to create lightweight Python package wrappers around non-Python software, and to install such software from project-specific repositories using virtualenv and pip. A shrinkwrap package is a minimal python package that downloads, compiles and installs software to the virtualenv base directory. The shrinkwrap package behaves just like a regular python package, so both shrinkwrap and non- shrinkwrap packages can be dependencies of each other. We find that this greatly simplifies deployment of Python packages that depend on compiled libraries *without* requiring the use of system-wide packaging tools, like apt or yum. Shrinkwrap is **not** an API wrapper generator like `SWIG `_, but does make it easier to install C libraries into a virtualenv before installing a separate Python wrapper around its API. .. warning:: To avoid cluttering PyPI with non-Python software, please do not ever upload shrinkwrap-generated packages there! Hosting shrinkwrap packages yourself is easy, and described further in :ref:`running_package_index`. Shrinkwrap is `available on PyPI `_ and can be installed via ``pip install shrinkwrap``, ``easy_install shrinkwrap``, or by downloading the package and installing with ``python setup.py install``. For those interested in the newest features should use the development version of shrinkwrap, `available on bitbucket `_:: hg clone http://bitbucket.org/seibert/shrinkwrap Note that you cannot directly install shrinkwrap from the Mercurial repository to a virtualenv with the ``pip -e`` command, as this appears to bypass our post- installation tasks. Running ``python setup.py install`` from the cloned repository is fine, however. Contents ======== .. toctree:: :maxdepth: 2 how packaging api roadmap Indices and tables ================== * :ref:`genindex` * :ref:`modindex` * :ref:`search`