与__author__
或__version__
顶级模块变量类似,是否有任何约定为Python源文件指定支持的Python版本?
我的用例是一个项目,其中包含一些需要与Python 2.4兼容的脚本。我想用一些普遍可识别的方式注意它们中的事实。
我不是在问how to require a minimal Python version during execution。我的问题是,开发人员可能会意外地使用与此特定脚本需要支持的python版本不兼容的功能。 PyCharm可以警告Python不兼容性。如果它能够获取此注释并在每个文件的基础上配置警告,那就太棒了。
答案 0 :(得分:2)
我不知道在Python源文件中指定支持的Python版本的约定。如果您正在制作Python库并通过PyPI(和pip
)分发它,您可以添加包元数据,说明它与哪些版本的Python兼容。
例如,对于我的scandir模块,您可以在PyPI上看到它(当前)标记为与Python 2.6,2.7和3.2-3.5兼容。该元数据位于包setup.py中的classifiers
关键字:
setup(
name='scandir',
# ...
classifiers=[
'Programming Language :: Python :: 2',
'Programming Language :: Python :: 2.6',
'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.2',
'Programming Language :: Python :: 3.3',
'Programming Language :: Python :: 3.4',
'Programming Language :: Python :: 3.5',
# ...
]
)
如果你没有将它作为PyPI包发布,那么当在旧版本的Python上导入模块时,可能会产生一个警告,并说这个功能不支持FizzBuzz功能。 Python版本。
import sys, warnings
if sys.version_info < (3, 5):
warnings.warn('The FizzBuzz feature is only supported on Python 3.5+')
所有这一切,我个人只是保持简单:文档只支持Python 3.5+,然后如果有人试图在旧版本上使用该功能,只需让它失败