如何识别未记录的 .py 模块的 Python 解释器版本?

How to identify the Python interpreter version for an undocumented .py module?

除了手动查看源代码之外,是否有一个已实施的程序解决方案来识别未记录的 .py 模块支持哪个版本的 Python 解释器?

$ python get_py_version my_module.py
'2.6 version module'

在 3.x 解释器中安装未记录的包后出现问题,发现在导入过程中有来自 2.x 解释器

print 语句

因为这只是一个文本文件,所以你无法自动找出它是用什么版本的Python写的。我不知道是否有很大的动力添加这个进入语言,特别是考虑到当你有一个 py3 与一个 py2 文件时它是多么明显(搜索打印,检查未来的导入等)。

但是,如果您查看的是 .pyc 文件,则可以分辨出不同之处。由于这些是由特定解释器编译的,因此文件中通常有一个组件为所使用的解释器提供十六进制值。

详情请看这里:Is there a way to know by which Python version the .pyc file was compiled?