在运行时确定Python的实现?

用户名

我正在编写一段返回概要信息的代码,能够动态返回使用中的Python实现将很有帮助。

是否有Python方式确定我的代码在运行时正在执行哪个Python实现(例如Jython,PyPy)?我知道我可以从获取版本信息sys.version

>>> import sys
>>> sys.version
'3.4.3 (default, May  1 2015, 19:14:18) \n[GCC 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.49)]'

但我不确定要在sys模块中的什么位置查看代码正在运行的实现。

用户名

您可以Python 3Python 2中python_implementationplatform模块中使用这将返回一个标识Python实现的字符串。

例如

return_implementation.py

import platform
print(platform.python_implementation())

并在命令行上遍历一些响应:

$ for i in python python3 pypy pypy3; do echo -n "implementation $i: "; $i return_implementation.py; done
implementation python: CPython
implementation python3: CPython
implementation pypy: PyPy
implementation pypy3: PyPy

请注意,截至本答案发布之日,可能的响应为“ CPython”,“ IronPython”,“ Jython”,“ PyPy”,这意味着python_implementation如果函数未与sys模块身份相同,则函数可能不会返回您的实现。这些类型之一。

python_implementation正在幕后调用sys.version并尝试将响应与正则表达式模式匹配-如果没有条件匹配,则没有匹配的字符串响应。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章