views:

505

answers:

2

How do you import python .egg files that are stored in a relative location to the .py code?

For example,

My Application/
My Application/library1.egg
My Application/libs/library2.egg
My Application/test.py

How do you import and use library1 and library2 from within test.py, while leaving the .egg libraries in-place?

+3  A: 

An .egg is just a .zip file that acts like a directory from which you can import stuff.

You can use the PYTHONPATH variable to add the .egg to your path, or append a directory to sys.path. Another option is to use a .pth file pointing to the eggs.

See here and here for more info. Also read the "all about eggs" part of this.

For example, if your library1.egg contains a package named foo, and you add library1.egg to PYTHONPATH or sys.path, you can just:

import foo
Eli Bendersky
So: import sys sys.path.append("library1.egg") import foo
Brian Jordan
A: 

You can include each egg on the sys.path, or create a .pth file that mentions each egg.

If you have many eggs that you need in your system I'd recommend using something like buildout, that will make the setup easily replicatable. It will handle the eggs for you.

http://pypi.python.org/pypi/zc.buildout/

Lennart Regebro