Preparing Windows build environment

To start developing PyWavelets code on Windows you will have to install a C compiler and prepare the build environment.

Installing Windows SDK C/C++ compiler

Microsoft Visual C++ 2008 (Microsoft Visual Studio 9.0) is the compiler that is suitable for building extensions for Python 2.6, 2.7, 3.0, 3.1 and 3.2 (both 32 and 64 bit).

Note

For reference:

  • the MSC v.1500 in the Python version string is Microsoft Visual C++ 2008 (Microsoft Visual Studio 9.0 with msvcr90.dll runtime)
  • MSC v.1600 is MSVC 2010 (10.0 with msvcr100.dll runtime)
  • MSC v.1700 is MSVC 2011 (11.0)
Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win32
Python 3.2 (r32:88445, Feb 20 2011, 21:30:00) [MSC v.1500 64 bit (AMD64)] on win32

To get started first download, extract and install Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1 from http://www.microsoft.com/downloads/en/details.aspx?familyid=71DEB800-C591-4F97-A900-BEA146E4FAE1&displaylang=en.

There are several ISO images on the site, so just grab the one that is suitable for your platform:

  • GRMSDK_EN_DVD.iso for 32-bit x86 platform
  • GRMSDKX_EN_DVD.iso for 64-bit AMD64 platform (AMD64 is the codename for 64-bit CPU architecture, not the processor manufacturer)

After installing the SDK and before compiling the extension you have to configure some environment variables.

For 32-bit build execute the util/setenv_build32.bat script in the cmd window:

rem Configure the environment for 32-bit builds.
rem Use "vcvars32.bat" for a 32-bit build.
"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat"
rem Convince setup.py to use the SDK tools.
set MSSdk=1
setenv /x86 /release
set DISTUTILS_USE_SDK=1

For 64-bit use util/setenv_build64.bat:

rem Configure the environment for 64-bit builds.
rem Use "vcvars32.bat" for a 32-bit build.
"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\vcvars64.bat"
rem Convince setup.py to use the SDK tools.
set MSSdk=1
setenv /x64 /release
set DISTUTILS_USE_SDK=1

See also http://wiki.cython.org/64BitCythonExtensionsOnWindows.

MinGW C/C++ compiler

MinGW distribution can be downloaded from http://sourceforge.net/projects/mingwbuilds/.

In order to change the settings and use MinGW as the default compiler, edit or create a Distutils configuration file c:\Python2*\Lib\distutils\distutils.cfg and place the following entry in it:

[build]
compiler = mingw32

You can also take a look at Cython’s “Installing MinGW on Windows” page at http://wiki.cython.org/InstallingOnWindows for more info.

Note

Python 2.7/3.2 distutils package is incompatible with the current version (4.7+) of MinGW (MinGW dropped the -mno-cygwin flag, which is still passed by distutils).

To use MinGW to compile Python extensions you have to patch the distutils/cygwinccompiler.py library module and remove every occurrence of -mno-cygwin.

See http://bugs.python.org/issue12641 bug report for more information on the issue.

Next steps

After completing these steps continue with Installing build dependencies.