[Distutils] easy_install: setup.py-less packages
Ian Bicking
ianb at colorstudy.com
Mon Jul 4 07:47:12 CEST 2005
Phillip J. Eby wrote:
> At 06:01 PM 7/3/2005 -0500, Ian Bicking wrote:
>
>> Hi; trying to get back into this again...
>>
>> So, there's a package at http://svn.saddi.com/flup/trunk/ that I want to
>> install, but it has no setup.py file. I think that file should look
>> something like:
>>
>> from setuptools import setup
>> setup(name="flup",
>> packages=['flup', 'flup.middleware', 'flup.resolver',
>> 'flup.server']
>> version='0.0-devel-r???')
>>
>>
>> And I'd probably add other things, but I think that's all that's
>> required. So... how should I make this happen? Should I hardcode
>> 'http://svn.saddi.com/flup/trunk' into the setup.py file? Can I make
>> the location overrideable with an option? How do I download the
>> checkout?
>
>
> Why don't you just use a subversion "external" to include the package in
> your own as a subdirectory? Then use the package_dir setting in setup
> to refer to the subdirectory.
I'd never looked at those before; that seems to be just right for this.
In other cases I might just download the file(s) on my own (e.g.,
archives online, etc.).
> You then publish your wrapping package as a subversion URL. This won't
> work for auto-discovery from PyPI unless your URL ends with Flup.egg or
> something like that, but you can always give it to EasyInstall as a URL,
> or build eggs and publish those.
Yes. Hmm... I suppose I could create something that redirected from a
detectable URL to the actual URL. That's kind of hacky though. Only
being able to list actual eggs decreases the utility of a custom index.
Could it also look at title attributes or something?
It would be neat if you could download a working development copy with
easy_install too. I'd like to encourage, or at least assist, people who
want to interact with the code itself; and if you use a checkout you can
at least use things like svn diff, even if you can't necessarily commit.
>> Should I calculate r??? on my own, and if so where? Right before I call
>> setup()? I need the repository location to do so, so if the repository
>> location was overrideable then I'd need to get the real location.
>
>
> Note that bdist_egg has an option to pull this for you, although
> currently it uses the setup.py directory so that doesn't actually help
> in this case.
Cool... though yes, it wouldn't work quite right here.
>> Once the files are checkout out, how do I put it in place? Is there a
>> way to set the "base path" for the packages, so I could say "install
>> these packages, found in /tmp/wherever-it-was-downloaded-to"?
>
>
> I don't understand.
Nevermind that, I think externals will work for me.
--
Ian Bicking / ianb at colorstudy.com / http://blog.ianbicking.org
More information about the Distutils-SIG
mailing list