[Nipy-devel] Setup.py and platform specific shared objects
Thu Jan 13 14:53:18 CST 2011
On Wed, Jan 12, 2011 at 6:07 PM, Yaroslav Halchenko <firstname.lastname@example.org>wrote:
> Hi Eleftherios,
> Great to see that you are leaping forward toward the release! We should
> start cooking Debian packaging for DiPy.
Have a look at the latest pull. They will probably not be any serious
changes for this release. It needs nibabel, numpy, scipy and cython. It
optionally, need python-vtk is that easy to install in debian?
> Unfortunately I cannot give a complete and exhaustive answer to your
> question (how to setup the distribution), in part because it is
> not clear either we are talking about source, binary distribution or you
> are trying to meld those two together. In the other part -- I am myself
> not very experienced with distribution outside of the Linux (and Debian
> in particular) world; distutils, setuptools (distribute), easy_install,
> pip, ... -- variety and Python-specificity somewhat scares me there
> especially when I think about users who are not (yet) Python-savvy.
> Would you know someone who is an expert on this? Especially when you need
to distribute compiled source?
> Nevertheless let me point out few aspects
> Generic aspect of "binaries" in VCS:
> Quite a few projects (especially among Matlab toolboxes) meld binary and
> source distribution together by keeping pre-built binary blobs in
> the same version control/branch as the source tree. Although it makes
> things somewhat simpler (especially for users/contributors who just
> check out necessary revision and could use/tune the tool without
> building anything), it severely impairs repository handling, especially
> in the case of centralized VCS as SVN. Therefore, if you decided to go
> that way (keeping pre-built binary blobs under VCS, GIT in your case), I
> would strongly advise to use appropriate mechanism to keep source tree
Good point. We are thinking with Matthew to make an egg for every os system
and python version 2.5, 2.6, 2.7.
> You could either carry them in a separate branch
> (release-binary) where you pre-build those and which you advice to use
> for the users, or just stuck them all in a separate repository which you
> link to your repository as a git submodule. Imho 2nd one is preferable
> since it would keep your source repository size not growing wildly, thus
> handling better, and so that in the future you could easily drop this
> approach and shrink your repository without rewriting it entirely.
> OSX Bundles:
> Initially convenient way of bundling everything together for OSX users,
> might create more complications in the long run, especially since
> DiPy is a module and users might want to incorporate it into analysis
> pipelines which use tools which are not available within the bundle...
> then they would need, if possible, to bring Dipy in the space of other
> bundles/distributions they have on the system (i.e. via .pth files).
> Sorry, this is not clear to me. What do you mean bundling everything
> should be no difficulty for people to have it built/installed in general
> especially if .c code for .pyx is shipped along within source
> distribution (VCS) -- compiler is nearly always there ;-) so simple
> setup.py using distutils (setuptools) should be enough for those
> desiring build it themselves.
Yes, truly linux is the best for this and debian/ubuntu the os of my
preference. I wished it was that easy with the other OS too.
> external dependencies (e.g. nibabel) probably should not be a part
> of it, but rather, upon demand easily installable (easy_install, unless
> OS provides them via system-level tools, e.g. apt on Debian systems)
> We should definitely make a debian package for dipy. There is no doubt
> Sorry if this does not answer your question... I can only promise that
> on Debian systems installation will be a breeze and dipy would become
> easily usable with any other python module people would like to use
> along with dipy ;-)
> Best regards,
> On Wed, 12 Jan 2011, Eleftherios Garyfallidis wrote:
> > We want to make dipy to be installed very easily to all 3 platforms
> > Linux,Windows and Mac. As you know in dipy we use cython and although
> > you can install cython even with easy_install these day you need to
> > have a compiler on your system which could be a problem for some
> > Therefore we would prefer to provide the compiled code for the cython
> > modules with our installation and to be platform specific.
> Keep in touch www.onerussian.com
> Yaroslav Halchenko www.ohloh.net/accounts/yarikoptic
> Nipy-devel mailing list
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Nipy-devel