【发布时间】:2016-03-12 09:58:49
【问题描述】:
我在 MSYS2 环境中使用 python。 MSYS2 有自己构建的 MINGW python 版本。我也可以从 www.python.org 安装官方 python。
问题来了:如果我要写python代码需要知道python版本是MINGW还是官方版本,怎么办?
这里有一些我可以想象的方式。
- 使用“sys.prefix”对象。它告诉安装目录。 MSYS2 通常安装在目录 X:\msys2\.... 中,官方默认安装在 X:\Python27\ 中。但用户可以更改安装目录。所以这不是一个好方法。
- 使用“sys.version”对象可以获得带有编译器名称的版本字符串显示。它显示了由 GCC 编译的 MINGW python,由 MSC 编译的官方版本。但是可能有其他版本的python也是由GCC或MSC构建的。
有没有更优雅的方法可以做到这一点?
【问题讨论】:
-
据我所知,您列出的两种方式是了解python版本的两种合理方式。但我很好奇,用户拥有哪个版本对您有什么影响?它们都将为相同的内部版本号提供相同的用户体验。
-
顺便说一下,您可以检查环境变量 MSYSTEM:如果它存在,通常意味着您在 MSYS2 shell 中运行。但我不知道您是否关心支持从 MSYS2 shell 运行官方 Python 解释器的用户。
-
嗨@marcus,cffi 不支持MINGW 版本。我想看看是否有更强大的方法让程序检测它然后使用其他功能。
-
@DavidGrayson :我确实需要从 MSYS2 运行它
-
我建议您实际检查是否支持 cffi。使用
try...except子句检查导入是否有效,并引发适当的错误。
标签: python windows gcc mingw msys2