[Distutils] SetupTools: The Case Of The Installed Egg
Phillip J. Eby
pje at telecommunity.com
Mon Nov 20 22:06:18 CET 2006
At 03:46 PM 11/20/2006 -0500, Alexander Michael wrote:
>On 11/19/06, Phillip J. Eby <pje at telecommunity.com> wrote:
> > At 12:41 PM 11/18/2006 -0500, Alexander Michael wrote:
> > >It looks like SetupTools now attempts to lower case everything, but
> > >doesn't in the case of an explicit install. Bug or feature?
> >
> > Neither; it's a meaningless quirk caused by the fact that easy_install
> > doesn't case-normalize egg paths supplied via the command line. (Virtually
> > everything else it does is with paths that are "absolutized" and
> > case-normalized.) It doesn't cause any problems, if that's what you're
> > wondering.
>
>Yep. Just wondering if it will bite me later (in linux or cygwin). The
>thing that concerned me most was that the case of entry inside the
>easy-install.pth file (all lower) disagreed with what was on the file
>system (mixed case as specified in setup.py). The different cases
>resulting from installation method is also a hobgoblin of my little
>mind, but if it causes no ill, then I can deal with the haunting.
>
>Since there is uncertainty in case, is there an easy way with
>pkg_resources to ask if a particular package is _installed in
>easy-install.pth_ and meets a given version requirement. For example,
>something like pkg_resources.isinstalled("MyPackage>=3.2")?
pkg_resources.working_set.find('MyPackage>=3.2') will return a true value
(a distribution object) if a matching package is currently on sys.path. If
'MyPackage' is on sys.path but doesn't match the version requirement, a
VersionConflict error is raised. If it's not on sys.path, None is returned.
More information about the Distutils-SIG
mailing list