[CppAD] building pycppad in Windows
Carlos Christoffersen
cechrist at vision.lakeheadu.ca
Sat Jun 22 09:49:29 EDT 2013
Instructions to build the pycppad module with WinPython-32
----------------------------------------------------------
The following instructions describe how to build the pycppad automatic
differentiation library
(http://www.seanet.com/~bradbell/pycppad/index.htm) to be used with
the 32-bit WinPython (http://code.google.com/p/winpython/). This is
known to work well on 64-bit Windows 7 and 32-bit Windows XP. A
somewhat similar set of steps with some modifications could possibly
be followed for the 64-bit version, but I have not tried it.
1. Download and install WinPython-32-bit-2.7.5.1. If you want to use
the configuration files included here, install in
c:\\WinPython-32bit-2.7.5.1
The 32-bit distribution comes with a copy of the MinGW-32 compiler
that we will use to build the extension. Open the "WinPython Command
Prompt" to build everything. The PATH variable in that command
prompt is already set to point to the mingw compiler and the python
interpreter.
2. Download and install the cppad library:
http://www.coin-or.org/CppAD/Doc/cppad.xml
Follow the configuration instructions and pass the following options
to ``cmake``::
cd cppad2013xxxx
mkdir c:\local
mkdir build
cd build
cmake -G "MinGW Makefiles" -D cmake_install_prefix=c:\local ..
Then install the header files as follows::
mingw32-make install
(replace ``c:\local`` with a directory of your choice)
3. Download and build the boost python library: download the latest
sources for the boost library:
http://sourceforge.net/projects/boost/files/boost/1.53.0/
In the source directory (assume c:\src\boost_1_53_0) type::
c:
cd \src\boost_1_53_0
bootstrap.bat mingw
Edit the ``project-config.jam`` file as follows (adjust path names
if needed)::
import option ;
using gcc ;
option.set keep-going : false ;
using python : 2.7 : c:\\WinPython-32bit-2.7.5.1\\python-2.7.5
: c:/WinPython-32bit-2.7.5.1/python-2.7.5/include
: c:/WinPython-32bit-2.7.5.1/python-2.7.5/libs ;
Now build the library::
.\b2.exe variant=release link=shared threading=multi python
4. Download pycppad from
http://www.seanet.com/~bradbell/pycppad/index.htm
Edit the top os ``setup.py`` as follows::
# Directory where CppAD include files are located
cppad_include_dir = [ 'c:/local/include' ]
# Directory where Boost Python library and include files are located
boost_python_include_dir = [ 'c:/src/boost_1_53_0' ]
boost_python_lib_dir = [ 'c:/src/boost_1_53_0/bin.v2/libs/python/build/gcc-mingw-4.6.2/release/threading-multi' ]
# Name of the Boost Python library in boost_python_lib_dir.
boost_python_lib = [ 'boost_python-mgw46-mt-1_53.dll' ]
Save the file and build as follows::
python setup.py build_ext --compiler=mingw32 install
There is one additional step: copy the boost python library to some
place that can be found in the ``PATH``::
copy c:\src\boost_1_53_0\bin.v2\libs\python\build\gcc-mingw-4.6.2\release\threading-multi\libboost_python-mgw46-mt-1_53.dll c:\WinPython-32bit-2.7.5.1\python-2.7.5
After that you should be able to import the library in the python
interpreter. It should work with IPython Qt Console, Spyder and the
WinPython Interpreter too.
I have posted a ready-to-use pycppad library to be used with
WinPython-32-bit-2.7.5.1 at:
http://vision.lakeheadu.ca/cardoon/pycppad-WinPython-32bit-2.7.5.1.zip
To install it open the zip file and put all files in the
``python-2.7.5`` subdirectory of the WinPython installation::
cd \WinPython-32bit-2.7.5.1\python-2.7.5
unzip c:\Users\user1\Downloads\pycppad-WinPython-32bit-2.7.5.1.zip
--
Carlos Christoffersen
Associate Professor
Department of Electrical Engineering
Lakehead University
955 Oliver Road
Thunder Bay, Ontario P7B 5E1
http://vision.lakeheadu.ca
More information about the CppAD
mailing list