何时/何地应该检查最小Python版本?

This question告诉我如何检查Python的版本.对于我的包我至少需要Python 3.3:

MIN_VERSION_INFO = 3, 3

import sys
if not sys.version_info >= MIN_VERSION_INFO:
    exit("Python {}.{}+ is required.".format(*MIN_VERSION_INFO))

但是这种检查应该在何时/何时发生?

我想为通过pip(sdist和wheel)或python setup.py install安装的用户生成最清晰的错误消息.就像是:

$pip -V
pip x.x.x from ... (Python 3.2)
$pip install MyPackage
Python 3.3+ is required.

$python -V
Python 3.2
$python setup.py install
Python 3.3+ is required.

最佳答案 兼容性检查的主要目的是在不兼容性导致问题之前,优先处理兼容性问题或优雅地退出解释.

我把它放在setup.py的顶部附近,或者是第一个属于你的脚本,它将被调用.最佳做法是不要在__init__.py中包含代码(除非你正在制作一个MAJOR包,我会提出意见),但如果你已经有很多代码,那就没关系了.

我可以找到最快的参考点:旧的Python 2.6 unittest module had a test for it near the top,自然地,在模块docstring,import和__all__之后.

Another point of reference shows a compatibility check in an __init__.py,再次,靠近顶部,虽然这里是紧跟docstring和sys导入之后,检查所需的.在同一组库中__init__.py中还有其他类似的用法示例.

点赞