Size: 6456
Comment:
|
Size: 7378
Comment: Add SDK 7.0
|
Deletions are marked like this. | Additions are marked like this. |
Line 49: | Line 49: |
* 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 other options. | * Install ''[[https://www.microsoft.com/en-us/download/details.aspx?id=8279|Microsoft Windows SDK for Windows 7 and .NET Framework 4]]''. Check ''Windows headers and libraries'' and ''Visual C++ Compilers'' options only. |
Line 56: | Line 56: |
rem Changed for use of Windows 7.1 SDK | rem Vcvarsall for use Windows SDK 7.1 |
Line 59: | Line 59: |
if /i "%1" == "amd64" ( | if /i "%1" == "x64" ( |
Line 61: | Line 61: |
) else if /i "%1" == "x64" ( | ) else if /i "%1" == "amd64" ( set vcvararch=x64 ) else if /i "%1" == "x86_amd64" ( |
Line 64: | Line 66: |
set vcvararch=ia64 ) else if /i "%1" == "x86_ia64" ( |
|
Line 68: | Line 72: |
CALL "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /%vcvararch% /release | set vcprogramfiles=%ProgramFiles(x86)% if "%vcprogramfiles%"=="" set vcprogramfiles=%ProgramFiles% call "%vcprogramfiles%\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /%vcvararch% /release |
Line 70: | Line 76: |
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. | If you don't want to modify ''vcvarsall.bat'', you have to run your commands from ''Windows SDK 7.1 Command Prompt'' (''C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd'') each time you want compile with Python. |
Line 94: | Line 100: |
* Create a file named ''vcvarsall.bat'' in ''C:\Program Files\Microsoft Visual Studio 9.0\VC\'' containing the following text : {{{ @echo off rem Vcvarsall for use Windows SDK 7.0 set DISTUTILS_USE_SDK=1 set MSSdk=1 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.0\Bin\SetEnv.cmd" /%vcvararch% /release }}} |
Contents
- Which Microsoft Visual C++ compiler use with a specified 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, ia64)
- Microsoft Visual C++ 9.0 standalone: Windows SDK 7.0 (x86, x64, ia64)
- Microsoft Visual C++ 9.0 with Visual Studio 2008 (x86, x64, ia64)
- MinGW (x86)
- Links
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 :
Install a non-pure Python package from sources with Pip (If there is no Wheel package provided).
Compile a Cython file.
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 some incompatibilities may occur with CPython official distribution which is build with Microsoft Visual C++.
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 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 is specified for each compiler between brackets.
This table resume architecture names correspondence:
Windows |
Architecture |
32Bit |
x86 |
64Bit |
x64 |
64Bit Itanium |
ia64 |
Microsoft Visual C++ 14.0 standalone: Visual C++ Build Tools 2015 (x86, x64, ARM)
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++ 14.0 with Visual Studio 2015 (x86, x64, ARM)
Visual Studio 2015 contain 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 the standalone version of Visual C++ 10.0 compiler, you don't need to install Visual Studio 2010.
Uninstall Microsoft Visual C++ 2010 Redistribuable if present (all versions and architecture). If present, it can cause 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 and Visual C++ Compilers options only.
reinstall Microsoft Visual C++ 2010 Redistribuable (In all previously installed architectures).
If you want automatic use of this compiler with Python :
Edit C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat and replace its content with the following text :
@echo off rem Vcvarsall for use Windows SDK 7.1 set DISTUTILS_USE_SDK=1 set MSSdk=1 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% /release
If you don't want to modify vcvarsall.bat, you have to run your commands from 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++ 10.0 with Visual Studio 2010 (x86, x64, ia64)
Visual Studio 2010 contain Visual C++ 10.0 compiler. Distutils will automatically detect the compiler and use it.
Microsoft Visual C++ 9.0 standalone: 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.
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 for update it:
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.
Microsoft Visual C++ 9.0 standalone: Windows SDK 7.0 (x86, x64, ia64)
This is the standalone version of Visual C++ 9.0 compiler, you don't need to install Visual Studio 2008.
Install Microsoft .NET Framework 3.5 SP1 if not present.
Install Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1.
Create a file named vcvarsall.bat in C:\Program Files\Microsoft Visual Studio 9.0\VC\ containing the following text :
@echo off rem Vcvarsall for use Windows SDK 7.0 set DISTUTILS_USE_SDK=1 set MSSdk=1 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.0\Bin\SetEnv.cmd" /%vcvararch% /release
Microsoft Visual C++ 9.0 with Visual Studio 2008 (x86, x64, ia64)
Visual Studio 2008 contain Visual C++ 9.0 compiler. Distutils will automatically detect the compiler and use it.
MinGW (x86)
MinGW is an alternate C++ compiler that work with all Python versions.
Install Minimalist GNU For Windows in 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 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
Links
Microsoft : The latest supported Visual C++ downloads : List of up to date Visual C++ Redistribuable and Visual Studio packages.