Meh*_*Meh 15 python ironpython version detection
我需要编写一个将在CPython和IronPython中使用的模块.什么是检测IronPython的最佳方法,因为在这种情况下我需要稍微不同的行为?
我注意到sys.platform在CPython上是"win32",但在IronPython上是"cli".
是否有其他首选/标准的检测方式?
Mar*_*off 17
Python 2.6中的新功能是platform.python_implementation:
返回标识Python实现的字符串.可能的返回值是:'CPython','IronPython','Jython'.
这可能是最干净的方式,而且这是标准的.但是,我相信Jython仍然运行2.5,所以我不确定你是否可以依靠它来检测Jython(但这不是你问题的一部分).
以下代码适用于CPython 2.6和Iron Python 2.6(.NET 2.0).但不适用于Iron Python 2.6(.NET 4.0),platform.py解析版本号存在一些问题.我向Python.org提交了一个缺陷.修复platform.py并不困难.
import sys
import platform
def IsIronPython():
return platform.python_implementation().lower().find("ironpython")!=-1
print IsIronPython()
Run Code Online (Sandbox Code Playgroud)