At 10:39 PM 5/22/2010 +0200, Manlio Perillo wrote:
The trivial solution is of course to not use "develop" command, and to build a normal egg.
Right. The slightly-less-trivial version is to make sure your source is in subversion, and add svn: links to your --find-links.
If `-maxd` will make the B.egg-info file relative, then all I need to do is to `python setup.py develop` inside A directory, and B package should be correctly available.
Is this possible?
The -a in -maxd means that you must have either a source distribution (e.g. an sdist .tgz, svn: link, etc.) or an .egg. It cannot do .egg-info at the moment (although when it grows PEP 376 support in 0.7 it probably will).
The easiest way to do this would be to add something like:
To your --find-links, and set your requirements to "projectname>=NN.NN,==dev", where NN.NN is the version you actually need, and the ==dev part allows it to pull the version from SVN and install it.
(Of course, if you don't have or use svn, this doesn't work; at the moment there isn't support for adding new URL protocols to easy_install, although it's on my list for 0.7.)
If this way doesn't work, you'll need to either use sdist, or make sure you do an egg install of your local packages before attempting to build a release.
Btw, there's still one MORE way to do this:
easy_install -maxd targetdir sourcedir1 sourcedir2 ...
Where sourcedir1, sourcedir2, etc. are local paths to project directories containing setup.py files. They'll all be built eggs and put in the targetdir.
(If you do this, however, you should list the dependencies *first*, rather than last, otherwise it will not be able to resolve them, if you are still only using 'develop' installs there.)