[SciPy-dev] distutils, mtrand, Monte Carlo

Robert Kern robert.kern at gmail.com
Tue Apr 18 14:41:02 EDT 2006


Ed Schofield wrote:
> Hi all,
> 
> I've now modified the Monte Carlo package (still in the sandbox) to use
> the RNG from RandomKit that comes with numpy.  It builds and works fine
> for me, but only with two directories hard-coded into the setup.py
> file.  I have some questions (e.g. for Pearu) on how to use numpy
> distutils to do this portably.
> 
> 1. Currently the add_headers method of distutils.misc_util.Configuration
> installs headers to $PREFIX/include/python2.4/numpy.  This doesn't
> bother me, but do we want this?  All other header files are installed
> into $PREFIX/lib/python2.4/site-packages/numpy or scipy/.

What headers are you trying to install?

> 2. The add_library method creates a static library under
> build/temp.linux-etc/.  Is it possible to use distutils to install this
> (e.g. librandomkit.a) to a system-wide location?  (This is necessary to
> prevent scipy having a build dependency on the numpy source files.)

No, distutils does not handle this, and probably cannot do so in any portable way.

> 3. Does distutils support dynamic libraries?  But randomkit is a small
> library, so I suppose static linking is fine here.

Not particularly. But, of course, the approach below is probably the best way:

> I also have a question for Robert K:
> 
> A while ago you offered to work on exporting the mtrand functions so
> other packages could link with them.  Could you please export the
> function prototypes as a separate header file?  This would probably
> require a modification the generate_mtrand_c.py script.  I'd appreciate
> this; then I could modify the montecarlo package to accept a RandomState
> object.

Yes, I've started working on exporting an array all of the functions in
randomkit and distributions.c as a CObject. It will be difficult to expose the
functions that are created by Pyrex since it is generated code, though.

-- 
Robert Kern
robert.kern at gmail.com

"I have come to believe that the whole world is an enigma, a harmless enigma
 that is made terrible by our own mad attempt to interpret it as though it had
 an underlying truth."
  -- Umberto Eco




More information about the SciPy-Dev mailing list