jmhobbs@pyhacker /posts/install-annwrapper-scikitsann-windows-xp
date
2008-07-31T19:24:31.000Z
whoami
jmhobbs
ls
comments content tags
wc content
315
cat content
Install AnnWrapper (scikits.ann) on Windows XP
ANN (Approximate Nearest Neighbor) is a C++ library for both exact and approximate nearest neighbor searching in arbitrarily high dimensions. I've been trying to use SWIG to wrap this library so I can use it in Python. Today I found out that someone had already done it!
The project is called scikits.ann. They even have an already-to-use egg file for OS X 10.5. Since my primary operating system is Leopard, I installed the egg file and tried it out. Everything worked great! I needed to use this library under Windows XP also, however, due to some things at work. Here's how I got everything working.
First of all, make sure you have Cygwin installed
(with the MinGW32 tools). We'll be using Cygwin to compile ANN. Also make sure
you have Python 2.5 for Windows XP
installed and Numpy.
You'll also need configobj,
and obviously setuptools
to be able to install the configobj
egg. After all those files have been
successfully installed, continue as follows (all these commands are within a Cygwin
shell):
Compile and install ANN
- Download from http://www.cs.umd.edu/~mount/ANN/Files/1.1.1/ann_1.1.1.tar.gz
- Download the Windows XP Makefile from http://scipy.org/scipy/scikits/attachment/wiki/WindowsBuildInstructionsForAnn/annwinstuff.zip
- Untar ann:
$ tar xfvz ann_1.1.1.tar.gz
- Copy the
annwinstuff.zip
file into theann_1.1.1
directory and unzip:
$ unzip annwinstuff.zip
- Edit the
ANN.h
header file:
$ vi include/ANN/ANN.h
- Replace lines 75 and 77 with:
#define DLL_API
- Build
ANN
withmingw
:
$ mingw32-make -f Makefile.win
- Copy
ANN
includes toCygwin
includes:
$ cp -r include/ANN /usr/local/include/.
- Copy
ANN
library toCygwin
lib:
$ cp lib/ANN.lib /usr/local/lib/.
Compile and install AnnWrapper
- Download from http://pypi.python.org/packages/source/s/scikits.ann/scikits.ann-0.2.dev-r803.tar.gz
- Edit
site.cfg
:
$ vi site.cfg
- Change
ANN_ROOT
to:
ANN_ROOT = c:/cygwin/usr/local
- Build and install
AnnWrapper
:
$ /cygdrive/c/Python25/python.exe setup.py build_ext --inplace build -c mingw32 install
Hopefully you'll now have a working install of scikits.ann to use with the
Windows version of Python 2.5! See the ANN
documentation and the
AnnWrapper
documentation for information on how to use this module.
cat comments