[Distutils] [kid-discuss] installing without setuptools
John J Lee
jjl at pobox.com
Sat Oct 14 16:20:10 CEST 2006
Apologies for being unable to resist going over old ground by responding
to this (moved here from the kid mailing list).
On Sat, 14 Oct 2006, Python wrote:
> On Fri, 2006-10-13 at 22:25 +0100, John J Lee wrote:
>> On Fri, 13 Oct 2006, Python wrote:
>>> I've also had grief with easy_install
>>> many options did not seem to work
>> Which ones?
> I can't say now. It seemed to be differences within packages and my
> computer environment. I did not keep careful notes.
> Phillip suggested
> which finally worked, but was not obvious from the docs.
I see. ISTM that the reason you had trouble is that you had your own
ideas about how things should work, rather than following the standard
setuptools way of doing things (which it certainly seems weren't
arbitrarily chosen, but followed from actual, carefully considered,
requirements). It's fair enough to do things your way, but one must
always expect to need to expend a bit of effort in trade for "do it *my*
way, not the standard way", IMNSHO. You don't get everything for free.
OTOH, I don't think I ever managed to get vanilla distutils to install
things anywhere but site-packages (admittedly I didn't have a serious need
for it, so I gave up after a few attempts), and in contrast I think I
managed to do it on my first attempt when using easy_install. So maybe
you solved that puzzle with plain-distutils and consider "install it in
this directory, I'll be responsible for putting it on sys.path" part of
the standard distutils experience...
But as I said on the kid list, you're right that easy_install would
benefit from more tightly end-user targetted docs (and ISTR PJE hopes to
write some later).
[slightly re-ordered from original post]
> Even the "just download the package and do nothing" option failed.
Why is that an "Even"? Downloading the package is bound to fail sometimes
given that setuptools tries to support old or uncooperative systems like
Sourceforge, arbitrary distutils projects (which can do their own thing
with naming conventions), and (ISTR) loosely-defined semantics of standard
setup.py parameters like download_url. If you dislike that feature, do
not use it. I guess ease of use is subjective, but when I tried it
yesterday -- to help out on the kid list -- I found I needed no docs other
than easy_install --help to figure out that I could just download stuff
myself and run "easy_install --no-deps <stuff>" (again, sure, "-meb." is
NOT obvious -- that's the price of doing stuff your own way, and not a
terribly high price as it goes, ISTM).
>>> other things simply went wrong
Would be nice to know what, if not already reported.
>>> The operation is rather opaque and the documentation kind of assumed the
>>> simple cases just worked. When operations fail, the trouble shooting
>>> steps are not obvious.
>> it's obvious with plain-distutils? You're a better programmer than I am
> I doubt it.
> All of the files and configuration info for distutils is in
> understandable file formats. eggs are rather difficult if you can't get
> the egg manipulation tools to work.
But most .eggs, as I understand it, are just .zip files, with a directory
inside containing arbitrary metadata files, with some standard metadata
for setuptools, which is documented:
(only "most" eggs because some are unzipped, and some are implemented with
an .egg-info link -- both of which are also documented above)
More information about the Distutils-SIG