Differences between revisions 41 and 72 (spanning 31 versions)
Revision 41 as of 2016-07-03 14:20:38
Size: 7759
Editor: Jgoutin
Comment:
Revision 72 as of 2022-01-27 14:04:44
Size: 11209
Comment: Add more up to date VS build instructions provided by Steve Dower
Deletions are marked like this. Additions are marked like this.
Line 17: Line 17:
||14.0 ||3.5 ||
||10.0 ||3.3, 3.4 ||
||9.0 ||2.6, 2.7, 3.0, 3.1, 3.2 ||
||14.x ||3.5 - 3.10 ||
||10.0 ||3.3 - 3.4 ||
||9.0 ||2.6 - 2.7, 3.0 - 3.2 ||
Line 21: Line 21:
= Distutils notes =
If the package's ''setup.py'' (still) uses ''distutils'' rather than the [[https://docs.python.org/2/library/distutils.html|recommended]] ''setuptools'', you may need extra steps:

 * ''distutils'' only supports the very minimum of compiler setups. The sections in this guide corresponding to them explicitly mention ''distutils''.
 * For other setups, you need to run the compilation from the "SDK prompt" of the corresponding toolchain and set the ''DISTUTILS_USE_SDK'' environment variable to a non-empty value.
Line 26: Line 31:
Line 30: Line 36:
== Microsoft Visual C++ 14.x with Visual Studio 2022 (x86, x64, ARM, ARM64) ==

 * Install ''[[https://visualstudio.microsoft.com/downloads/|Microsoft Visual Studio 2022]]'' (or later).
 * Install the ''Python development'' workload and the optional ''Python native development tools'' option.
 * Install the latest ''Windows SDK'' (under ''Native development'' in the installer).
 * Optional: Set {{{$env:PlatformToolset}}} to your toolset version before building, if it doesn't detect it.
 * Update to the latest ''setuptools'' Python package version.

For additional details, please have a look at the Windows section of the [[https://devguide.python.org/setup/#windows|Python Development Guide]] and the [[https://github.com/python/cpython/blob/main/PCbuild/python.props|PCbuild/python.props]] file for full details on how Python is built on Windows.

At the time of this writing, CPython is built using VC++ 14.3 (Jan 2022).

== Microsoft Visual C++ 14.2 standalone: Build Tools for Visual Studio 2019 (x86, x64, ARM, ARM64) ==
This is a standalone version of ''Visual C++ 14.2'' compiler, you don't need to install ''Visual Studio 2019''.

 * Install ''[[https://visualstudio.microsoft.com/vs/older-downloads/|Microsoft Build Tools for Visual Studio 2019]]''.
 * In Build tools, install ''C++ build tools'' and ensure the latest versions of ''MSVCv142 - VS 2019 C++ x64/x86 build tools'' and ''Windows 10 SDK'' are checked.
 * The ''setuptools'' Python package version must be at least 34.4.0.

{i} Build Tools also allows to install any previous Visual C++ 14 version (Including 2015, 2017 ones).

== Microsoft Visual C++ 14.2 with Visual Studio 2019 (x86, x64, ARM, ARM64) ==
''Visual Studio 2019'' contains ''Visual C++ 14.2'' compiler. The ''setuptools'' Python package version must be at least 34.4.0.

== Microsoft Visual C++ 14.1 standalone: Build Tools for Visual Studio 2017 (x86, x64, ARM, ARM64) ==
This is a standalone version of ''Visual C++ 14.1'' compiler, you don't need to install ''Visual Studio 2017''.

 * Install ''Microsoft Build Tools for Visual Studio 2017''.
 * The ''setuptools'' Python package version must be at least 34.4.0.

/!\ Build Tools for Visual Studio 2017 was upgraded by Microsoft to Build Tools for Visual Studio 2019. See the previous paragraph to install it.

== Microsoft Visual C++ 14.1 with Visual Studio 2017 (x86, x64, ARM, ARM64) ==
''Visual Studio 2017'' contains ''Visual C++ 14.1'' compiler. The ''setuptools'' Python package version must be at least 34.4.0.

/!\ Visual Studio 2017 was upgraded by Microsoft to Visual Studio 2019. See the previous paragraph to install it.
Line 33: Line 76:
 * Install ''[[http://landinghub.visualstudio.com/visual-cpp-build-tools|Microsoft Visual C++ Build Tools 2015]]''. Check ''Windows 8.1 SDK'' and ''Windows 10 SDK'' options.  * Install ''Microsoft Visual C++ Build Tools 2015''. Check ''Windows 8.1 SDK'' and ''Windows 10 SDK'' options.
Line 35: Line 78:

/!\ Visual C++ Build Tools 2015 was upgraded by Microsoft to Build Tools for Visual Studio 2017. See the previous paragraph to install it.
Line 38: Line 83:

/!\ Visual Studio 2015 was upgraded by Microsoft to Visual Studio 2017. See the previous paragraph to install it.
Line 60: Line 107:
{i} This package always installs its start menu shortcuts for the installing user (i.e. an administrator) only. To get them for all users, run the installation like this: ''msiexec /i <full path to .msi> ALLUSERS=1''.
Line 66: Line 115:
 * Install ''[[https://www.microsoft.com/download/details.aspx?id=3138|Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1]]''. Check ''Windows headers and libraries'', ''Visual C++ Compilers'' and ''Win32 Developement Tools'' options only.  * Install ''Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1''. Check ''Windows headers and libraries'', ''Visual C++ Compilers'' and ''Win32 Development Tools'' options only.
Line 68: Line 117:

For manual use, you have to run your commands from ''Windows SDK 7.0 Command Prompt'' (''C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0\Bin\SetEnv.cmd'') each time you want to compile with Python. By default, SetEnv.cmd uses the ''x86'' architecture, use ''/x64'' or ''/ia64'' arguments to change it.
Line 77: Line 124:
 * Install ''[[https://www.microsoft.com/download/details.aspx?id=11310|Microsoft Windows SDK for Windows Server 2008 and .NET Framework 3.5]]''. Check ''Windows headers and libraries'', ''Visual C++ Compilers'' and ''Win32 Development Tools'' options only.  * Install ''Microsoft Windows SDK for Windows Server 2008 and .NET Framework 3.5''. Check ''Windows headers and libraries'', ''Visual C++ Compilers'' and ''Win32 Development Tools'' options only.
Line 79: Line 126:

For manual use, you have to run your commands from ''Windows SDK 6.1 Command Prompt'' (''C:\Program Files (x86)\Microsoft SDKs\Windows\v6.1\Bin\SetEnv.cmd'') each time you want to compile with Python. By default, SetEnv.cmd uses the ''x86'' architecture, use ''/x64'' or ''/ia64'' arguments to change it.
Line 85: Line 130:
== MinGW (x86) ==
MinGW is an alternative C++ compiler that works with all Python versions.
== GCC - MinGW-w64 (x86, x64) ==
Line 88: Line 132:
 * Install ''[[http://sourceforge.net/projects/mingw/files/|Minimalist GNU For Windows]]'' into ''C:\MinGW''.
 * Open ''MinGW Installation Manager'', check ''mingw32-base'' and ''mingw32-gcc-g++'', and ''Apply Changes'' in the ''Installation'' menu.
 * Add ''C:\MinGW\bin'' to the ''PATH'' environment variable (With ";" before if PATH is not empty).
[[http://mingw-w64.org|MinGW-w64]] is an alternative C/C++ compiler that works with all Python versions up to 3.4.

 * Install ''[[http://win-builds.org/doku.php/download_and_installation_from_windows|Win-builds]]'' into ''C:\MinGW_w64''.
 * Open ''Win-builds'', switch to ''install'' at least ''binutils'', ''gcc'', ''gcc-g++'', ''getext'', ''mingw-w64'', ''win-iconv'', ''winpthreads'', ''zlib'', and click ''Process''.
 * Add ''C:\MinGW_w64\bin'' to the ''PATH'' environment variable.
Line 100: Line 146:
= Links =
 * [[https://support.microsoft.com/kb/2977003|Microsoft : The latest supported Visual C++ downloads]] : List of up-to-date ''Visual C++ Redistributable'' and ''Visual Studio'' packages.

== GCC - MinGW (x86) ==

[[http://www.mingw.org/|MinGW]] is an alternative C/C++ compiler that works with all Python versions up to 3.4.

 * Install ''[[http://sourceforge.net/projects/mingw/files/|Minimalist GNU For Windows]]'' into ''C:\MinGW''.
 * Open ''MinGW Installation Manager'', check ''mingw32-base'' and ''mingw32-gcc-g++'', and ''Apply Changes'' in the ''Installation'' menu.
 * Add ''C:\MinGW\bin'' to the ''PATH'' environment variable.
 * Create a ''distutils.cfg'' file with the following contents in the folder ''\Lib\distutils'' in Python install directory :

{{{#!highlight ini
[build]
compiler=mingw32

[build_ext]
compiler=mingw32
}}}

Even though 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.

For example, you will need to use them if you wish to:

Microsoft provides official C++ compilers called Visual C++, you can find them bundled with Visual Studio or, for some versions, in standalone distributions. Some alternative compilers exist like MinGW, but incompatibilities may occur with a CPython official distribution that is built with Microsoft Visual C++.

The compiler's architecture must be the same as Python's (for example: if you use Python 64bit, you have to use an x64 compiler).

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

Each Python version uses a specific compiler version (e.g. CPython 2.7 uses Visual C++ 9.0, CPython 3.3 uses Visual C++ 10.0, etc). So, you need to install the compiler version that corresponds to your Python version :

Visual C++

CPython

14.x

3.5 - 3.10

10.0

3.3 - 3.4

9.0

2.6 - 2.7, 3.0 - 3.2

Distutils notes

If the package's setup.py (still) uses distutils rather than the recommended setuptools, you may need extra steps:

  • distutils only supports the very minimum of compiler setups. The sections in this guide corresponding to them explicitly mention distutils.

  • For other setups, you need to run the compilation from the "SDK prompt" of the corresponding toolchain and set the DISTUTILS_USE_SDK environment variable to a non-empty value.

Compilers Installation and configuration

Compatible architectures are specified for each compiler in brackets.

/!\ Before do anything, install or upgrade the Setuptools Python package. It contain compatibility improvements and add automatic use of compilers:

pip install --upgrade setuptools

Microsoft Visual C++ 14.x with Visual Studio 2022 (x86, x64, ARM, ARM64)

  • Install Microsoft Visual Studio 2022 (or later).

  • Install the Python development workload and the optional Python native development tools option.

  • Install the latest Windows SDK (under Native development in the installer).

  • Optional: Set $env:PlatformToolset to your toolset version before building, if it doesn't detect it.

  • Update to the latest setuptools Python package version.

For additional details, please have a look at the Windows section of the Python Development Guide and the PCbuild/python.props file for full details on how Python is built on Windows.

At the time of this writing, CPython is built using VC++ 14.3 (Jan 2022).

Microsoft Visual C++ 14.2 standalone: Build Tools for Visual Studio 2019 (x86, x64, ARM, ARM64)

This is a standalone version of Visual C++ 14.2 compiler, you don't need to install Visual Studio 2019.

  • Install Microsoft Build Tools for Visual Studio 2019.

  • In Build tools, install C++ build tools and ensure the latest versions of MSVCv142 - VS 2019 C++ x64/x86 build tools and Windows 10 SDK are checked.

  • The setuptools Python package version must be at least 34.4.0.

{i} Build Tools also allows to install any previous Visual C++ 14 version (Including 2015, 2017 ones).

Microsoft Visual C++ 14.2 with Visual Studio 2019 (x86, x64, ARM, ARM64)

Visual Studio 2019 contains Visual C++ 14.2 compiler. The setuptools Python package version must be at least 34.4.0.

Microsoft Visual C++ 14.1 standalone: Build Tools for Visual Studio 2017 (x86, x64, ARM, ARM64)

This is a standalone version of Visual C++ 14.1 compiler, you don't need to install Visual Studio 2017.

  • Install Microsoft Build Tools for Visual Studio 2017.

  • The setuptools Python package version must be at least 34.4.0.

/!\ Build Tools for Visual Studio 2017 was upgraded by Microsoft to Build Tools for Visual Studio 2019. See the previous paragraph to install it.

Microsoft Visual C++ 14.1 with Visual Studio 2017 (x86, x64, ARM, ARM64)

Visual Studio 2017 contains Visual C++ 14.1 compiler. The setuptools Python package version must be at least 34.4.0.

/!\ Visual Studio 2017 was upgraded by Microsoft to Visual Studio 2019. See the previous paragraph to install it.

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

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

  • Install Microsoft Visual C++ Build Tools 2015. Check Windows 8.1 SDK and Windows 10 SDK options.

  • The setuptools Python package version must be at least 24.0.

/!\ Visual C++ Build Tools 2015 was upgraded by Microsoft to Build Tools for Visual Studio 2017. See the previous paragraph to install it.

Microsoft Visual C++ 14.0 with Visual Studio 2015 (x86, x64, ARM)

Visual Studio 2015 contains Visual C++ 14.0 compiler. Distutils will automatically detect the compiler and use it.

/!\ Visual Studio 2015 was upgraded by Microsoft to Visual Studio 2017. See the previous paragraph to install it.

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

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

Microsoft Visual C++ 10.0 with Visual Studio 2010 (x86, x64, ia64)

Visual Studio 2010 contains Visual C++ 10.0 compiler. Distutils will automatically detect the compiler and use it. The Express edition of Visual Studio 2010 only bundles a compiler for x86.

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

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

{i} Even though this package's name refers to Python 2.7 specifically, you can use it with all Python versions that use Visual C++ 9.0.

{i} This package always installs its start menu shortcuts for the installing user (i.e. an administrator) only. To get them for all users, run the installation like this: msiexec /i <full path to .msi> ALLUSERS=1.

Microsoft Visual C++ 9.0 standalone: Windows SDK 7.0 (x86, x64, ia64)

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

/!\ The use of Microsoft Visual C++ Compiler for Python 2.7 is recommended (If you don't need to compile for ia64). See the previous paragraph to install it.

  • Install Microsoft .NET Framework 3.5 SP1 if not present.

  • Install Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1. Check Windows headers and libraries, Visual C++ Compilers and Win32 Development Tools options only.

  • The setuptools Python package version must be at least 24.0.

Microsoft Visual C++ 9.0 standalone: Windows SDK 6.1 (x86, x64, ia64)

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

/!\ Windows SDK 6.1 was upgraded by Microsoft to Windows SDK 7.0. See the previous paragraph to install it.

  • Install Microsoft .NET Framework 3.5 SP1 if not present.

  • Install Microsoft Windows SDK for Windows Server 2008 and .NET Framework 3.5. Check Windows headers and libraries, Visual C++ Compilers and Win32 Development Tools options only.

  • The setuptools Python package version must be at least 24.0.

Microsoft Visual C++ 9.0 with Visual Studio 2008 (x86, x64, ia64)

Visual Studio 2008 contains Visual C++ 9.0 compiler. Distutils will automatically detect the compiler and use it. The Express edition of Visual Studio 2008 only bundles a compiler for x86.

GCC - MinGW-w64 (x86, x64)

MinGW-w64 is an alternative C/C++ compiler that works with all Python versions up to 3.4.

  • Install Win-builds into C:\MinGW_w64.

  • Open Win-builds, switch to install at least binutils, gcc, gcc-g++, getext, mingw-w64, win-iconv, winpthreads, zlib, and click Process.

  • Add C:\MinGW_w64\bin to the PATH environment variable.

  • Create a distutils.cfg file with the following contents in the folder \Lib\distutils in Python install directory :

   1 [build]
   2 compiler=mingw32
   3 
   4 [build_ext]
   5 compiler=mingw32

GCC - MinGW (x86)

MinGW is an alternative C/C++ compiler that works with all Python versions up to 3.4.

  • Install Minimalist GNU For Windows into C:\MinGW.

  • Open MinGW Installation Manager, check mingw32-base and mingw32-gcc-g++, and Apply Changes in the Installation menu.

  • Add C:\MinGW\bin to the PATH environment variable.

  • Create a distutils.cfg file with the following contents in the folder \Lib\distutils in Python install directory :

   1 [build]
   2 compiler=mingw32
   3 
   4 [build_ext]
   5 compiler=mingw32

WindowsCompilers (last edited 2023-06-09 12:03:05 by MarcAndreLemburg)

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