Differences between revisions 33 and 34
Revision 33 as of 2016-04-15 14:55:06
Size: 8979
Editor: Ivan Pozdeev
Comment: fix instructions to be complete for SDK 6.1,7.0,7.1;VC for Python 2.7 is okay. Tested on x32 py2.7 & py3.4
Revision 34 as of 2016-04-15 16:30:40
Size: 9056
Editor: Ivan Pozdeev
Comment: grammar
Deletions are marked like this. Additions are marked like this.
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 : For example, you will need to use them if you want to:
Line 10: Line 10:
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 some incompatibilities may occur with CPython official distribution which is build with Microsoft Visual C++.
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 exists like [[http://mingw.org/|MinGW]], but incompatibilities may occur with a CPython official distribution that is build with Microsoft Visual C++.
Line 13: Line 12:
The compiler architecture must be the same as Python (Example: If you use Python 64bit, you have to use a x64 compiler). The compiler's architecture must be the same as Python's (for example: if you use Python 64bit, you have to use a x64 compiler).
Line 16: Line 15:
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 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||
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'', ...). 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 25:

Compatible architectures is specified for each compiler between brackets.
Compatible architectures are specified for each compiler in brackets.
Line 27: Line 28:
This is a standalone version of ''Visual C++ 14.0'' compiler, you don't need to install ''Visual Studio 2015''.
Line 28: Line 30:
This is the standalone version of ''Visual C++ 14.0'' compiler, you don't need to install ''Visual Studio 2015''.
Line 33: Line 34:
(!) 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 content with the following text : (!) 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 41: Line 43:
Line 43: Line 44:

''Visual Studio 2015'' contain ''Visual C++ 14.0'' compiler. ''Distutils'' will automatically detect the compiler and use it.
''Visual Studio 2015'' contains ''Visual C++ 14.0'' compiler. ''Distutils'' will automatically detect the compiler and use it.
Line 47: Line 47:
This is a standalone version of ''Visual C++ 10.0'' compiler, you don't need to install ''Visual Studio 2010''.
Line 48: Line 49:
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.
 * 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.
Line 53: Line 52:
 * 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 update compiler to Visual C++ 10.0 SP1.
 * reinstall ''[[https://www.microsoft.com/download/details.aspx?id=26999|Microsoft Visual C++ 2010 Redistribuable]]'' (In all previously installed architectures).
 * 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).
Line 56: Line 55:
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 compile with Python. By default, SetEnv.cmd use the ''x86'' architecture, use ''/x64'' or ''/ia64'' arguments for change it. 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.
Line 58: Line 57:
(!) 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 content with the following text : (!) 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 :
Line 79: Line 79:
Line 81: Line 80:

''Visual Studio 2010'' contain ''Visual C++ 10.0'' compiler. ''Distutils'' will automatically detect the compiler and use it.
''Visual Studio 2010'' contains ''Visual C++ 10.0'' compiler. ''Distutils'' will automatically detect the compiler and use it.
Line 85: Line 83:

This is the standalone version of ''Visual C++ 9.0'' compiler, you don't need to install ''Visual Studio 2008''.
This is a standalone version of ''Visual C++ 9.0'' compiler, you don't need to install ''Visual Studio 2008''.
Line 89: Line 86:
 * 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:  * 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 93: Line 91:

{i} Even if this compiler specify Python 2.7, you can use it with all Python versions using ''Visual C++ 9.0''.
{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 97: Line 94:
This is a standalone version of ''Visual C++ 9.0'' compiler, you don't need to install ''Visual Studio 2008''.
Line 98: 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 for install it.
/!\ 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 106: Line 102:
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 compile with Python. By default, SetEnv.cmd use the ''x86'' architecture, use ''/x64'' or ''/ia64'' arguments for change it. 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 109: Line 105:
This is a standalone version of ''Visual C++ 9.0'' compiler, you don't need to install ''Visual Studio 2008''.
Line 110: Line 107:
This is the 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 for install it.
/!\ Windows SDK 6.1 was upgraded by Microsoft to Windows SDK 7.0. See the previous paragraph to install it.
Line 118: Line 113:
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 compile with Python. By default, SetEnv.cmd use the ''x86'' architecture, use ''/x64'' or ''/ia64'' arguments for change it. 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 121: Line 116:
''Visual Studio 2008'' contain ''Visual C++ 9.0'' compiler. ''Distutils'' will automatically detect the compiler and use it. ''Visual Studio 2008'' contains ''Visual C++ 9.0'' compiler. ''Distutils'' will automatically detect the compiler and use it.
Line 124: Line 119:
MinGW is an alternate C++ compiler that work with all Python versions. MinGW is an alternative C++ compiler that works with all Python versions.
Line 127: Line 123:
 * 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 :
 * 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 :
Line 136: Line 133:
Line 138: Line 134:
 *[[https://support.microsoft.com/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++ Redistribuable'' and ''Visual Studio'' packages.

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 want 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 exists like MinGW, but incompatibilities may occur with a CPython official distribution that is build 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 a x64 compiler).

Which Microsoft Visual C++ compiler use with a specified 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, ...). 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.

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 :

   1 rem Vcvarsall for Visual C++ Build Tools 2015
   2 @echo off
   3 set vcprogramfiles=%ProgramFiles(x86)%
   4 if "%vcprogramfiles%"=="" set vcprogramfiles=%ProgramFiles%
   5 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.

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.

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.

pip install --upgrade setuptools

{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.

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.

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.

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.

MinGW (x86)

MinGW is an alternative C++ compiler that works 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 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 :

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

Links

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

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