[Distutils] easy_install: setup.py-less packages
Phillip J. Eby
pje at telecommunity.com
Mon Jul 4 04:19:08 CEST 2005
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
>from setuptools import setup
> packages=['flup', 'flup.middleware', 'flup.resolver', 'flup.server']
>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
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.
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.
>What was in a function before is now in
>setuptools.package_index.PackageIndex, and involves all sorts of data
>that doesn't seem to imply (because it's not a package without the
>setup.py file, and there's no index to get it from).
Well, it still doesn't stop you from using it to download. Be aware also
that the API for the non-downloading parts of PackageIndex might change
significantly between now and 0.6, due to the redesign docs I posted here a
week or two ago.
>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.
>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.
More information about the Distutils-SIG