Revision 6 as of 2015-11-12 10:34:06

Clear message

THIS PAGE IS WORK IN PROGRESS

Even if Python is an interpreted language, you may need to install Windows C++ compilers in some cases. Unlike Linux, compilers for Windows are not included by default in the OS.

By example, you will need to use them if you want :

Microsoft provide official C++ compilers called Visual C++, you can find them with Visual Studio or, for some versions, in standalone distribution. Some alternates compilers exists like MinGW, but the CPython implementation is compiled with Microsoft official compilers and compatibility may not be perfect.

The compiler architecture must be the same as Python (Example: If you use Python 64bit, you have to use a x64 compiler).

Which Microsoft Visual C++ compiler use with a specified Python version ?

Each Python version use a specific compiler version (Example : CPython 2.7 use Visual C++ 9.0, CPython 3.3 use Visual C++ 10.0, ...). So, you need to install the compiler version linked to you Python version :

Visual Studio

Visual C++

CPython

2015

14.0

3.5

2010

10.0

3.3, 3.4

2008

9.0

2.6, 2.7, 3.0, 3.1, 3.2

Compilers Installation

Compatible architectures is specified for each compiler between brackets.

This table resume architecture names correspondence:

Windows

Architecture

32Bit

x86

64Bit

x64

Itanium

ia64

Microsoft Visual C++ 14.0/2015 standalone version: Visual C++ Build Tools 2015 (x86, x64)

Work in progress...

This is the standalone version of Visual C++ 14.0 compiler, you don't need to install Visual Studio 2015.

Microsoft Visual C++ 10.0/2010 standalone version: Windows SDK 7.1 (x86, x64, ia64)

This is the standalone version of Visual C++ 10.0 compiler, you don't need to install Visual Studio 2010.

If you want automatic use of this compiler with Python :

@echo off
rem Vcvarsall changed for automatic use of "Windows 7.1 SDK" with Distutils on Python
set DISTUTILS_USE_SDK=1
set MSSdk=1
if /i "%1" == "amd64" (
    set vcvararch=x64
) else if /i "%1" == "x64" (
    set vcvararch=x64
) else if /i "%1" == "ia64" (
    set vcvararch=ia64
) else (
    set vcvararch=x86
)
CALL "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /%vcvararch% /release

If you don't want to modify vcvarsall.bat you have to run the Windows SDK 7.1 Command Prompt (C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd) each time you want compile with Python. By default, it use the x86 Debug configuration. Use /x64 or /ia64 arguments for change architecture and /Release argument for use the release configuration.

Microsoft Visual C++ 9.0/2008 standalone version: Visual C++ Compiler for Python 2.7 (x86, x64, ia64)

This is the standalone version of Visual C++ 9.0 compiler, you don't need to install Visual Studio 2008.

pip install --upgrade setuptools

Note: Even if this compiler specify Python 2.7, you can use it with all Python versions using Visual C++ 9.0.

MinGW (x86)

MinGW is an alternate compiler that work with all Python versions. Some incompatibilities may occur with CPython official distribution which is build with Microsoft Visual C++.

 [build]
 compiler=mingw32
 
 [build_ext]
 compiler=mingw32

Links

Unable to edit the page? See the FrontPage for instructions.