Size: 4749
Comment: Page creation
|
Size: 9228
Comment: Update MS VC++ Build Tools to point at http://landinghub.visualstudio.com/visual-cpp-build-tools instead of blog post
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
'''THIS PAGE IS WORK IN PROGRESS''' | <<TableOfContents()>> |
Line 3: | Line 3: |
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. |
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. |
Line 6: | Line 5: |
By example, you will need to use them if you want : * Install a non-pure Python package from sources with [[https://pip.pypa.io/|Pip]] (If there is no [[http://wheel.readthedocs.org|Wheel package]] provided). * Compile a [[http://cython.org/|Cython]] file. |
For example, you will need to use them if you wish to: |
Line 10: | Line 7: |
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 [[http://mingw.org/|MinGW]], but the CPython implementation is compiled with Microsoft official compilers and compatibility may not be perfect. |
* Install a non-pure Python package from sources with [[https://pip.pypa.io/|Pip]] (if there is no [[http://wheel.readthedocs.org|Wheel package]] provided). * Compile a [[http://cython.org/|Cython]] or [[https://pypi.python.org/pypi/Pyrex|Pyrex]] file. |
Line 13: | Line 10: |
The compiler architecture must be the same as Python (Example: If you use Python 64bit, you have to use a 64bit compiler) | 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 [[http://mingw.org/|MinGW]], but incompatibilities may occur with a CPython official distribution that is built with Microsoft Visual C++. |
Line 15: | Line 12: |
= 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|| |
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.0 ||3.5 || ||10.0 ||3.3, 3.4 || ||9.0 ||2.6, 2.7, 3.0, 3.1, 3.2 || |
Line 23: | Line 22: |
= Compilers Installation = | |
Line 25: | Line 23: |
== Microsoft Visual C++ 14.0/2015 standalone version: Visual C++ Build Tools 2015 (32bit, 64bit) == | |
Line 27: | Line 24: |
'''Work in progress...''' | = Compilers Installation and configuration = Compatible architectures are specified for each compiler in brackets. |
Line 29: | Line 27: |
This is the standalone version of ''Visual C++ 14.0'' compiler, you don't need to install ''Visual Studio 2015''. | == 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''. |
Line 31: | Line 30: |
* [[https://www.microsoft.com/en-us/download/details.aspx?id=49512|Microsoft Visual C++ Build Tools 2015]] * [[https://www.microsoft.com/en-us/download/details.aspx?id=48145|Visual C++ Redistributable for Visual Studio 2015]] |
* 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. |
Line 34: | Line 32: |
== Microsoft Visual C++ 10.0/2010 standalone version: Windows SDK 7.1 (32bit, 64bit) == | You have to run your commands from ''Visual C++ Build Tools Command Prompt'' (''C:\Program Files (x86)\Microsoft Visual C++ Build Tools\'') each time you want compile with Python. |
Line 36: | Line 34: |
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, you can also edit the ''C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat'' and replace its contents with the following text : |
Line 38: | Line 36: |
* Uninstall ''Microsoft Visual C++ 2010 Redistribuable'' if present (in x86 (32bits) and x64 version). If present, it can cause error on Windows SDK 7.1 installation. * Install ''[[https://www.microsoft.com/en-US/download/details.aspx?id=17851|Microsoft .NET Framework 4]]'' if not present. * Install ''[[https://www.microsoft.com/en-us/download/details.aspx?id=8279|Microsoft Windows SDK for Windows 7 and .NET Framework 4]]''. Only ''Windows headers and libraries'' and ''Visual C++ Compilers'' options are needed, you can uncheck all others. * Make a back up and edit the following file: ''C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat'' and replace its content with (Replace ''/x86'' by ''/x64'' if you want compile for Python 64bits): |
{{{#!highlight bat rem Vcvarsall for Visual C++ Build Tools 2015 @echo off set vcprogramfiles=%ProgramFiles(x86)% if "%vcprogramfiles%"=="" set vcprogramfiles=%ProgramFiles% call "%vcprogramfiles%\Microsoft Visual C++ Build Tools\vcbuildtools.bat" %* }}} == 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. == 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''. * Uninstall ''Microsoft Visual C++ 2010 Redistributable'' if present (all versions and architectures). If present, it can cause an error on Windows SDK 7.1 installation. * Install ''[[https://www.microsoft.com/download/details.aspx?id=24872|Microsoft .NET Framework 4]]'' if not present. * Install ''[[https://www.microsoft.com/download/details.aspx?id=8279|Microsoft Windows SDK for Windows 7 and .NET Framework 4]]''. Check ''Windows headers and libraries'', ''Visual C++ Compilers'' and ''Windows Native Code Development\Tools'' options only. * Install ''[[https://www.microsoft.com/download/details.aspx?id=4422|Microsoft Visual C++ 2010 Service Pack 1 Compiler Update for the Windows SDK 7.1]]''. This updates the compiler to Visual C++ 10.0 SP1. * reinstall ''[[https://www.microsoft.com/download/details.aspx?id=26999|Microsoft Visual C++ 2010 Redistributable]]'' (for all previously installed architectures). You have to run your commands from ''Windows SDK 7.1 Command Prompt'' (''C:\Program Files (x86)\Microsoft SDKs\Windows\v7.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. (!) If you want automatic use of this compiler with Python, you can also edit the ''C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat'' file and replace its contents with the following text : {{{#!highlight bat rem Vcvarsall for Windows SDK 7.1 @echo off if /i "%1" == "x64" ( set vcvararch=x64 ) else if /i "%1" == "amd64" ( set vcvararch=x64 ) else if /i "%1" == "x86_amd64" ( set vcvararch=x64 ) else if /i "%1" == "ia64" ( set vcvararch=ia64 ) else if /i "%1" == "x86_ia64" ( set vcvararch=ia64 ) else ( set vcvararch=x86 ) set vcprogramfiles=%ProgramFiles(x86)% if "%vcprogramfiles%"=="" set vcprogramfiles=%ProgramFiles% call "%vcprogramfiles%\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /%vcvararch% }}} == 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''. * Install ''[[https://www.microsoft.com/download/details.aspx?id=44266|Microsoft Visual C++ Compiler for Python 2.7]]''. * Make sure ''setuptools'' version is at least 6.0 or it will not correctly detect the compiler path. Simply run the following in command prompt to update it: |
Line 43: | Line 89: |
CALL "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x86 /release set DISTUTILS_USE_SDK=1 set MSSdk=1 |
pip install --upgrade setuptools |
Line 47: | Line 91: |
* Install ''[[https://www.microsoft.com/en-us/download/details.aspx?id=26999|Microsoft Visual C++ 2010 Redistribuable]]'' (32bit and/or 64bit). | {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''. |
Line 49: | Line 93: |
== Microsoft Visual C++ 9.0/2008 standalone version: Visual C++ Compiler for Python 2.7 (32bit, 64bit) == | == 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''. |
Line 51: | Line 96: |
This is the 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. |
Line 53: | Line 98: |
Note: Even if this compiler specify Python 2.7, you can use it with all Python version Using ''Visual C++ 9.0''. | * Install ''[[https://www.microsoft.com/download/details.aspx?id=25150|Microsoft .NET Framework 3.5 SP1]]'' if not present. * 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. * Set the ''DISTUTILS_USE_SDK'' environment variable to 1. |
Line 55: | Line 102: |
* Install ''[[https://www.microsoft.com/en-us/download/details.aspx?id=26368|Microsoft Visual C++ 2008 Redistribuable]]'' (32bit and/or 64bit). * Install ''[[https://www.microsoft.com/en-us/download/details.aspx?id=44266|Microsoft Visual C++ Compiler for Python 2.7]]''. |
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 58: | Line 104: |
== MinGW (32Bit only) == 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++. * Install ''[[http://sourceforge.net/projects/mingw/files/|Minimalist GNU For Windows]]'' in ''C:\MinGW''. * Open M''inGW Installation Manager'', check ''mingw32-base'' and ''mingw32-gcc-g++'', and ''Apply Changes'' in the ''Installation'' menu. * Add ''C:\MinGW\bin'' to ''PATH'' environment variable (With ";" before is PATH is not empty). * Create a ''distutils.cfg'' file with the following content in the folder ''\Lib\distutils'' in Python install directory : {{{ [build] compiler=mingw32 [build_ext] compiler=mingw32 |
== 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 ''[[https://www.microsoft.com/download/details.aspx?id=25150|Microsoft .NET Framework 3.5 SP1]]'' if not present. * Install ''[[https://www.microsoft.com/download/details.aspx?id=11310|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. * Set the ''DISTUTILS_USE_SDK'' environment variable to 1. 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. == 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. == MinGW (x86) == MinGW is an alternative C++ compiler that works with all Python versions. * 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). * 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 |
Line 71: | Line 133: |
Line 73: | Line 134: |
*[[https://support.microsoft.com/en-us/kb/2977003|Microsoft : The latest supported Visual C++ downloads]] : List of up to date ''Visual C++ Redistribuable'' and ''Visual Studio'' packages. | * [[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. |
Contents
- Which Microsoft Visual C++ compiler to use with a specific Python version ?
-
Compilers Installation and configuration
- Microsoft Visual C++ 14.0 standalone: Visual C++ Build Tools 2015 (x86, x64, ARM)
- Microsoft Visual C++ 14.0 with Visual Studio 2015 (x86, x64, ARM)
- Microsoft Visual C++ 10.0 standalone: Windows SDK 7.1 (x86, x64, ia64)
- Microsoft Visual C++ 10.0 with Visual Studio 2010 (x86, x64, ia64)
- Microsoft Visual C++ 9.0 standalone: Visual C++ Compiler for Python 2.7 (x86, x64)
- Microsoft Visual C++ 9.0 standalone: Windows SDK 7.0 (x86, x64, ia64)
- Microsoft Visual C++ 9.0 standalone: Windows SDK 6.1 (x86, x64, ia64)
- Microsoft Visual C++ 9.0 with Visual Studio 2008 (x86, x64, ia64)
- MinGW (x86)
- Links
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:
Install a non-pure Python package from sources with Pip (if there is no Wheel package provided).
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.0 |
3.5 |
10.0 |
3.3, 3.4 |
9.0 |
2.6, 2.7, 3.0, 3.1, 3.2 |
Compilers Installation and configuration
Compatible architectures are specified for each compiler in brackets.
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.
You have to run your commands from Visual C++ Build Tools Command Prompt (C:\Program Files (x86)\Microsoft Visual C++ Build Tools\) each time you want compile with Python.
If you want automatic use of this compiler with Python, you can also edit the C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat and replace its contents with the following text :
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.
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.
Uninstall Microsoft Visual C++ 2010 Redistributable if present (all versions and architectures). If present, it can cause an error on Windows SDK 7.1 installation.
Install Microsoft .NET Framework 4 if not present.
Install Microsoft Windows SDK for Windows 7 and .NET Framework 4. Check Windows headers and libraries, Visual C++ Compilers and Windows Native Code Development\Tools options only.
Install Microsoft Visual C++ 2010 Service Pack 1 Compiler Update for the Windows SDK 7.1. This updates the compiler to Visual C++ 10.0 SP1.
reinstall Microsoft Visual C++ 2010 Redistributable (for all previously installed architectures).
You have to run your commands from Windows SDK 7.1 Command Prompt (C:\Program Files (x86)\Microsoft SDKs\Windows\v7.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.
If you want automatic use of this compiler with Python, you can also edit the C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat file and replace its contents with the following text :
1 rem Vcvarsall for Windows SDK 7.1
2 @echo off
3 if /i "%1" == "x64" (
4 set vcvararch=x64
5 ) else if /i "%1" == "amd64" (
6 set vcvararch=x64
7 ) else if /i "%1" == "x86_amd64" (
8 set vcvararch=x64
9 ) else if /i "%1" == "ia64" (
10 set vcvararch=ia64
11 ) else if /i "%1" == "x86_ia64" (
12 set vcvararch=ia64
13 ) else (
14 set vcvararch=x86
15 )
16 set vcprogramfiles=%ProgramFiles(x86)%
17 if "%vcprogramfiles%"=="" set vcprogramfiles=%ProgramFiles%
18 call "%vcprogramfiles%\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /%vcvararch%
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.
Make sure setuptools version is at least 6.0 or it will not correctly detect the compiler path. Simply run the following in command prompt to update it:
pip install --upgrade setuptools
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.
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 Developement Tools options only.
Set the DISTUTILS_USE_SDK environment variable to 1.
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.
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 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.
Set the DISTUTILS_USE_SDK environment variable to 1.
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.
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.
MinGW (x86)
MinGW is an alternative C++ compiler that works with all Python versions.
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 (With ";" before if PATH is not empty).
Create a distutils.cfg file with the following contents in the folder \Lib\distutils in Python install directory :
Links
Microsoft : The latest supported Visual C++ downloads : List of up-to-date Visual C++ Redistributable and Visual Studio packages.