List Info

Thread: Re: Simpler Python package management: the "egg" command




Re: Simpler Python package management: the "egg" command
country flaguser name
United States
2007-08-20 13:01:02
At 10:59 AM 8/17/2007 +0100, Luis Bruno wrote:
>The really *big* -1 this has is that I'm basically gonna
be using
>--single-version-externally-managed eggs (which makes it
impossible to
>have multiple "inactive" versions and
require() them, if I understood
>Phillip Eby correctly).

You can have inactive versions and require() them, they just
have to 
be .egg files or directories.  You can have a
"default" version 
that's installed --single-version, e.g. by a system package
manager 
such as RPM.


>I was thinking "sync local" re-gets the
repository's Packages
>master-list. Then you read in the locally installed ones
(which is a
>matter of traversing sys.path and looking for the
.egg-info files; I
>think those are now (as of 2.5) expected to be there.

Please, please, *please* use the published APIs in
pkg_resources for 
this.  Too many people are writing tools that inspect egg
files and 
directories directly -- and get it only partly right, making

assumptions about the formats that aren't valid across
platforms, 
Python versions, etc., etc.

In general, if you are doing absolutely *anything* with
on-disk 
formats of eggs, and you didn't read enough of the docs to
find the 
equivalent APIs, it's a near-certainty that you don't
understand the 
format well enough to write your own versions.  Meanwhile, 
pkg_resources is proposed for inclusion in the Python 2.6
stdlib, so 
it's not like it's going to be hard to get a hold of.

In this particular example, by the way, if you want to find
all 
locally installed packages, you probably want to be using an

Environment instance, which indexes all installed packages
by package 
name, and gives you objects you can inspect in a variety of
ways, 
including using .get_metadata('PKG-INFO') calls to read the
.egg-info 
files -- or .egg-info/PKG-INFO, or EGG-INFO/PKG-INFO, or
whatever 
file is actually involved.  (This is why you need to use the
API -- 
there are a lot of devils in the details.)


>I think easy_install -f <url> can work against an
Apache directory
>index.

Yes.


>I thought that was the whole point behind it, really.

One of them, anyway.  There are other aspects besides -f
that work 
for directory indexes, such as PyPI "home page"
and "download" URL links.

_______________________________________________
Catalog-SIG mailing list
Catalog-SIGpython.org
h
ttp://mail.python.org/mailman/listinfo/catalog-sig

[1]

about | contact  Other archives ( Real Estate discussion Medical topics )