From: <pe...@ce...> - 2006-10-17 11:04:22
|
On Tue, 17 Oct 2006, Stefan van der Walt wrote: > On Tue, Oct 17, 2006 at 10:03:03AM +0200, Francesc Altet wrote: > > A Divendres 13 Octubre 2006 22:20, Lisandro Dalcin va escriure: > > > On 10/13/06, Francesc Altet <fa...@ca...> wrote: > > > > Is it possible to test a numpy version directly from the source > > > > directory without having to install it? > > > > > > I usually do: > > > > > > $ python setup.py build > > > $ python setup.py install --home=/tmp > > > $ export PYTHONPATH=/tmp/lib/python > > > > Thanks for your answer Lisandro, but what I want is to completely avoid an > > installation. The idea is to be able to test the local copy version of numpy > > in the development directory while doing small changes on it. Having to do > > the install step slows down the testing phase when doing small > > changes. > > It would be great if we could get this to work. One problem is that > distutils won't build the C-modules in place. Does anyone know of a > workaround? Actually numpy.distutils supports in place builds of C modules. However, its rather difficult to make numpy inplace to work for the following reasons: - to build a numpy based C extension, you'll need numpy header files - numpy header files are generated during numpy build So it is a chicken-egg problem. One workaround for testing a numpy subpackage would be installing numpy and then doing inplace build in numpy subpackage directory. For example: cd svn/numpy python setup.py install cd numpy/fft python setup.py build build_ext --inplace Another workaround would be to install only numpy.core (that contains numpy headers) and then doing inplace builds in numpy source directory --- this, however, requires some setup.py modifications. IMO, doing inplace builds has side effects that can easily lead to shooting to a leg. While developing numpy, I would recommend always installing numpy to some place, setting PYTHONPATH accordingly, write unittests, and run them for testing. When test_*.py files are set up properly then you don't need to install everytime you modify unittests, they can be run inplace. Pearu |