Re: [Numpy-discussion] [Nipy-devel] Impossibility to build nipy on recent numpy?
On Thu, Dec 10, 2009 at 3:59 AM, David Cournapeau <cournape@gmail.com> wrote:
You could also try playing with the order of the -Ipath to make sure the right one us picked up before /usr/include, but I am not sure it is even possible, as /usr/include may always be the first one gcc looks in.
Gael, orthogonal to reporting this to Ubuntu, I think you can do what David suggests by configuring your variables correctly. I have a pretty strictly manipulated set of valid installation $PREFIX location, all of which I can use for ./configure --prefix=$PREFIX or ./setup.py install --prefix=$PREFIX and that's because for each one of these, I correctly configure ALL of these: PATH: binary execution LD_LIBRARY_PATH: dynamic linker search path LIBRARY_PATH: static linking by gcc (like -L) CPATH: generic include path for gcc (like -I), used for all languages C_INCLUDE_PATH: C-specific include path, after CPATH CPLUS_INCLUDE_PATH: C++-specific include path, after CPATH PYTHONPATH: search path for python packages I have some bash code to do this automatically, I can send it your way if you want. This doesn't out of the box work for in-place installs, because it creates pythonpath with pythonX.Y/site-packages, so it would not cover your in-place headers. But you could easily use the utilities in there to configure some of the *PATH variables with the location of your numpy source tree, so the in-place installs work as you expect them. I haven't tested it, but I think it should work. Cheers, f
On Thu, Dec 10, 2009 at 02:28:52PM -0800, Fernando Perez wrote:
and that's because for each one of these, I correctly configure ALL of these:
PATH: binary execution LD_LIBRARY_PATH: dynamic linker search path LIBRARY_PATH: static linking by gcc (like -L) CPATH: generic include path for gcc (like -I), used for all languages C_INCLUDE_PATH: C-specific include path, after CPATH CPLUS_INCLUDE_PATH: C++-specific include path, after CPATH PYTHONPATH: search path for python packages
I have an aversion to changing LD_LIBRARY_PATH, LIBRARY_PATH, C_INCLUDE_PATH, CPATH, and CPLUS_INCLUDE_PATH, because I believe it leads to non reproducibles builds or run-time. More importantly, having to pull these tricks often reveals non-compatible run-times, and thus impossibility to share code, eg to use system code in localy-installed packages[*]. Now, we are indeed in such a situation (because we have binary incompatibility between numpy 1.3 and numpy 1.4), and there is nothing I can do to avoid it. It just makes me very unhappy. I am confortable enough with a Linux build environment to pull tricks to get stuff to build and run most of the time. I do however consider it wrong to have to do so. I don't want to use these tricks systematicaly. I'd much rather trip on the incompatibilities, and report them as bugs or annoyances. Thanks for offering, though. Gaƫl [*] To give examples, I don't consider that I should have to build atlas to use scipy svn. I do it quite often because I get better performance, but it should not be necessary. Similarly, I want to be able to install Mayavi svn and use the system VTK, and the system VTK Python bindings. Matplotlib should be able to use pygtk from the system...
On Thu, Dec 10, 2009 at 2:40 PM, Gael Varoquaux <gael.varoquaux@normalesup.org> wrote:
I have an aversion to changing LD_LIBRARY_PATH, LIBRARY_PATH, C_INCLUDE_PATH, CPATH, and CPLUS_INCLUDE_PATH, because I believe it leads to non reproducibles builds or run-time.
More importantly, having to pull these tricks often reveals non-compatible run-times, and thus impossibility to share code, eg to use system code in localy-installed packages[*].
Having local prefixes that are fully defined (i.e. where all *path variables are valid) makes it easy to do local installs under $HOME of just about anything, something that I need often when I'm running in environments where I don't have root access. That's really why I settled on this practice, and so far it's served me well. Cheers, f
participants (2)
-
Fernando Perez
-
Gael Varoquaux