[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
> 	-meb.
> 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:

http://peak.telecommunity.com/DevCenter/EggFormats


(only "most" eggs because some are unzipped, and some are implemented with 
an .egg-info link -- both of which are also documented above)


John



More information about the Distutils-SIG mailing list