[Distutils] SETUPTOOLS - Loading Eggs which do not have an egg_info

Ilias Lazaridis ilias at lazaridis.com
Fri Dec 8 17:24:00 CET 2006


Phillip J. Eby wrote:
> At 09:03 PM 12/7/2006 +0200, Ilias Lazaridis wrote:
>> This is a special and limited use-case:
>>
>> The eggs do *not* need to be found by other eggs/applications, as they
>> are used only by the application that loads them in.
> 
> That's 100% irrelevant.  

ok

> There are a whole bunch of different ways for you 
> to install them 
[...]

I understand.

Flexibility is very nice.

But simplicity, too.

My requirement is to have no additional installation steps after an 
svn-checkout (or unzip).

>> Thus I just want to create the egg representation in my code (to call
>> the entry_points), whilst using the information from setup.py/sources
>> (instead of the generated egg_info).
> 
> I still don't get why you can't run "develop", "egg_info", or build .egg 
> files.  If the answer is simply that you don't want to, I'd suggest getting 
> over it.  :)  If there's some other reason, you haven't shared it with me yet.

The reason is "reduncancy", which I like to avoid.

For simple plugins, the information is already given within "setup.py", 
thus duplicating it into an egg-info is "duplicating information".

> I suspect, however, that the actual problem is that you're not aware of one 
> or more of the several other ways to implement plugins... that all actually 
> work.  :)

Trac uses setuptools as it's plugin mechanism, thus I have to deal with 
eggs in my use case. Most (if not all) of those plugins just use the 
basic constructs of setuptools.

In my use-case, a loader retrieves all 2nd-level directories from within 
a folder and loads the eggs:

http://dev.lazaridis.com/base/browser/infra/tracx/loader-draft-test.py?rev=171

I had initially placed the egg-info-generation within this code, but 
this leads to problems with permissions etc. - and: it's redundant.

-

As said, as a user I am very happy with setuptools. As a developer, I 
would like to have more simplicity for simple use cases. I think 
removing the need for an egg-info would be the first step.

-

How does this read:

Setuptools allows you to use simple python packages as eggs, without the 
need to generate an egg-info. This is especially usefull in development 
environments or in environments with a high amount of plugins.

The information needed will be retrieved from within the setup.py file. 
If a feature requires generation of the egg-info, you'll recieve either 
an warning, and error or the egg-info will be generated automaticly 
(depending on configuration).

This way, any folder which contains an setup.py file containing the 
configuration can serve as an "raw egg".

.

-- 
http://lazaridis.com



More information about the Distutils-SIG mailing list