Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What are simple instructions for creating a Python package structure and egg?

I just completed my first (minor) Python project, and my boss wants me to package it nicely so that it can be distributed and called from other programs easily. He suggested I look into eggs. I've been googling and reading, but I'm just getting confused. Most of the sites I'm looking at explain how to use Python eggs that were already created, or how to create an egg from a setup.py file (which I don't yet have). All I have now is an Eclipse pydev project with about 4 modules and a settings/configuration file. In easy steps, how do I go about structuring it into folders/packages and compiling it into an egg? And once it's an egg, what do I have to know about deploying/building/using it? I'm really starting from scratch here, so don't assume I know anything; simple step-by-step instructions would be really helpful...

These are some of the sites that I've been looking at so far:

  • http://peak.telecommunity.com/DevCenter/PythonEggs
  • http://www.packtpub.com/article/writing-a-package-in-python
  • http://www.ibm.com/developerworks/library/l-cppeak3.html#N10232

I've also browsed a few SO questions but haven't really found what I need.

Thanks!

like image 544
froadie Avatar asked May 27 '10 15:05

froadie


People also ask

What is egg format in Python?

A “Python egg” is a logical structure embodying the release of a specific version of a Python project, comprising its code, resources, and metadata. There are multiple formats that can be used to physically encode a Python egg, and others can be developed.


2 Answers

All you need is read this: The Hitchhiker's Guide to Packaging

or install PasteScript using pip or easy_install, then

paster create your_package_name

and you'll get a template for your python package

like image 153
number5 Avatar answered Sep 28 '22 01:09

number5


You should hold to the standard packaging of distutils. Quoting James Bennett:

Please, for the love of Guido, stop using setuptools and easy_install, and use distutils and pip instead.

Starting from there, a quite standard distribution looks like:

module/
README
setup.py # follow http://docs.python.org/distutils/setupscript.html
tests/
like image 28
Olivier Verdier Avatar answered Sep 28 '22 01:09

Olivier Verdier