[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
>something like:
>from setuptools import setup
>         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

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 mailing list