Bitbucket is a code hosting site with unlimited public and private repositories. We're also free for small teams!

Close

EggsPacker

What is it ?

EggsPacker allows you to put in a single directory a python egg and all its dependencies as long as it is able to find them in a python index.

It is almost equivalent as running "easy_install -zmaxd basket somepackage", with 2 important differences :

  1. The python version and target platform can be changed from the system ones. This allow to prepare all the necessary eggs for a py2.5 win32 distribution on a py2.7 linux (for example).
  2. EggsPacker will only work with eggs, no sources. So it requires an index that have all the dependencies available as eggs for the correct target platform / python version.

Disclaimer

The implementation rely as much as possible on pkg_resources to resolve the requirements and read the metadata, so there should be no wrong version packed although I of course give no warranty of any kind.

Reading the package index on the other hand was tested only on a an index builded by http://pypi.python.org/pypi/basketweaver/, so expect issues if hitting directly the pypi index.

Usage

Usage: packeggs [options] pkgname [pkgname [pkgname...]]

Options:
  -h, --help            show this help message and exit
  -i INDEX, --index=INDEX
                        A Pypi compatible index URL. Default to pypi
  -t TARGETDIR, --targetdir=TARGETDIR
                        Target directory. Default: "basket".
  --python-version=PYTHON_VERSION
                        Target python version.
  --platform=PLATFORM   Target platform
  --unzip=UNZIP         Unzip the asked egg if present in the dependencies.
                        The special value "auto" will guess what to do with
                        with not-zip-safe flag, and "all" will force unzipping
                        of all the eggs. Can be specified several times.

Example

The following command will get into the 'basket' directory the ANicePackage-0.1-py2.5 egg and all its dependencies for the win32 platform, while unzipping the eggs not marked as zip-safe plus forcely unzipping ANicePackage:

packeggs -i http://yourserver/your/package/index --python-version 2.5 --platform win32 --targetdir basket ANicePackage==0.1 --unzip auto --unzip ANicePackage

Recent activity

Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.