如何判断python是mingw还是官方build?

Nei*_*ang 3 python windows gcc mingw msys2

我在MSYS2环境中使用python。MSYS2 有自己构建的 MINGW python 版本。我也可以从 www.python.org 安装官方 python。

问题来了:如果我想写一段python代码,需要知道python版本是MINGW还是官方版本,我该怎么办?

以下是我可以想象的一些方法。

  1. 使用“sys.prefix”对象。它告诉安装目录。MSYS2 一般安装在 X:\msys2\.... 目录下,官方默认安装在 X:\Python27\ 目录下。但用户可以更改安装目录。所以这不是一个好办法。
  2. 使用“sys.version”对象可以获得与编译器名称一起显示的版本字符串。它显示了 GCC 编译的 MINGW python,官方的 MSC 编译的。但也有可能有其他版本的Python也是由GCC或MSC构建的。

有没有更优雅的方法可以做到这一点?

Vas*_*kin 6

Mingw python3 构建修补了官方sysconfig.get_platform()函数,因此它返回“mingw”,可用于与官方 python 构建区分开。

https://github.com/Alexpux/MINGW-packages/blob/abd06ca92d876b9db05dd65f27d71c4ebe2673a9/mingw-w64-python2/0410-MINGW-build-extensions-with-GCC.patch#L54