Differences between revisions 42 and 43
Revision 42 as of 2016-07-03 17:23:01
Size: 7143
Editor: Jgoutin
Comment:
Revision 43 as of 2016-12-02 22:45:57
Size: 10163
Editor: BrianFennell
Comment: Add MSYS2 Section
Deletions are marked like this. Additions are marked like this.
Line 96: Line 96:

== MSYS2 ==

GCC for Windows with Extras

MSYS2 combines Cygwin (or at least a Cygwin fork) with MinGW - it has a Linux like command line package installer (for non-python things, this is good) named "pacman" ported from Arch Linux. It contains a 4 flavors of Python for Windows: MSYS2 (Cygwin-like) Python 3, MSYS2 (Cygwin-like) Python 2, MinGW (Stand Alone Windows) Python 3, and MinGW (Stand Alone Windows) Python 2. Similarly it has MSYS2 (Cygwin-like) and MinGW flavors of GCC. You can rebuild Python and Python modules using the appropriate gcc.

[[http://www.mingw.org/wiki/MSYS|MSYS description From the MinGW Wiki]]

MSYS (Minimal SYStem) is a collection of GNU utilities such as bash, make, gawk and grep to allow building of applications and programs which depend on traditionally UNIX tools to be present. It is intended to supplement MinGW and the deficiencies of the cmd shell.

An example would be building a library that uses the autotools build system. Users will typically run "./configure" then "make" to build it. The configure shell script requires a shell script interpreter which is not present on Windows systems, but provided by MSYS.

[[https://wiki.qt.io/MSYS2|MSYS2 description From the MinGW Wiki]]

MSYS2 (Minimal SYStem 2) is an independent rewrite of MSYS, a (command-line) shell for development usage, and based on modern Cygwin (POSIX compatibility layer) and MinGW-w64 (from "MinGW-builds"), with the aim of better interoperability with native Windows software. It includes: MSYS2-shell and MinGW-w64 Win32 shell & MinGW-w64 Win64 shell. It supports & can work with both 32bit & 64bit multiple toolchains & targets, (for 64bit a 64bit operating system is needed). MSYS2 is a successor of MSYS and MinGW-builds. MSYS2-shell uses "pacman" for downloading packages from repo, and these are GPG signed & verified.

'''More MSYS2 Links'''
 * [[https://sourceforge.net/p/msys2/wiki/Home/|sourceforge.net - msys2 - Wiki Home]]
 * [[https://sourceforge.net/p/msys2/wiki/Launchers/|sourceforge.net - msys2 - Launchers]]
 * [[https://github.com/elieux/msys2-launcher|github.com - msys2-launcher]]
 * [[https://sourceforge.net/p/msys2/wiki/MSYS2%20introduction/|sourceforge.net - msys2 - MSYS2 Introduction]]
 * [[https://sourceforge.net/p/msys2/wiki/Contributing%20to%20MSYS2/|sourceforge.net - msys2 - Contributing to MSYS2 (How to Build MSYS2 from Source)]]
 * [[https://sourceforge.net/p/msys2/wiki/MSYS2%20installation/|sourceforge.net - msys2 - MSYS2 Installation (Download and Install)]]
 * [[https://sourceforge.net/p/msys2/wiki/MSYS2%20re-installation/|sourceforge.net - msys2 - MSYS2 Re-Installation (rebuild once you have a base-installation)]]
 * [[https://sourceforge.net/p/msys2/mailman/|sourceforge.net - msys2 - MSYS2 Mailing Lists (Support Forums)]]

 * [[https://sourceforge.net/p/msys2/wiki/Packages/|sourceforge.net - msys2 - MSYS2 Package List]]
  * mingw/mingw-w64-python2
  * mingw/mingw-w64-python3
  * msys/python2
  * msys/python

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

/!\ 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.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.

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.

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.

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.

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.

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 :

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

MSYS2

GCC for Windows with Extras

MSYS2 combines Cygwin (or at least a Cygwin fork) with MinGW - it has a Linux like command line package installer (for non-python things, this is good) named "pacman" ported from Arch Linux. It contains a 4 flavors of Python for Windows: MSYS2 (Cygwin-like) Python 3, MSYS2 (Cygwin-like) Python 2, MinGW (Stand Alone Windows) Python 3, and MinGW (Stand Alone Windows) Python 2. Similarly it has MSYS2 (Cygwin-like) and MinGW flavors of GCC. You can rebuild Python and Python modules using the appropriate gcc.

MSYS description From the MinGW Wiki

MSYS (Minimal SYStem) is a collection of GNU utilities such as bash, make, gawk and grep to allow building of applications and programs which depend on traditionally UNIX tools to be present. It is intended to supplement MinGW and the deficiencies of the cmd shell.

An example would be building a library that uses the autotools build system. Users will typically run "./configure" then "make" to build it. The configure shell script requires a shell script interpreter which is not present on Windows systems, but provided by MSYS.

MSYS2 description From the MinGW Wiki

MSYS2 (Minimal SYStem 2) is an independent rewrite of MSYS, a (command-line) shell for development usage, and based on modern Cygwin (POSIX compatibility layer) and MinGW-w64 (from "MinGW-builds"), with the aim of better interoperability with native Windows software. It includes: MSYS2-shell and MinGW-w64 Win32 shell & MinGW-w64 Win64 shell. It supports & can work with both 32bit & 64bit multiple toolchains & targets, (for 64bit a 64bit operating system is needed). MSYS2 is a successor of MSYS and MinGW-builds. MSYS2-shell uses "pacman" for downloading packages from repo, and these are GPG signed & verified.

More MSYS2 Links

Links

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

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