我应该在何时/何地检查Python的最低版本?
告诉我如何检查Python版本。对于我的软件包,我至少需要Python 3.3:我应该在何时/何地检查Python的最低版本?,python,pip,compatibility,Python,Pip,Compatibility,告诉我如何检查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 instal
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
的顶部,或者是属于您的第一个将被调用的脚本。最好的做法是不要在\uuuu init\uuuuuuuy.py
中包含代码(我认为,除非您正在制作一个主要的包),但是如果您已经有很多代码,那就好了
我能找到的最快的参考点是:旧的,自然地,在模块docstring、imports和\uuuuu all\uuuu
之后
,再次靠近顶部,尽管此处紧跟在docstring之后,并且需要导入检查所需的
sys
。在同一组库中的\uuuu init\uuuuuuuuy.py
中也有类似的用法。也许是@sharth的一个副本,该问题的公认答案是将其放入setup.py
。这对包括轮子在内的所有分发方法都有效吗?还是\uuu init\uuuuuuuuuuuuuuuuuuuuuuuuuupy
更好?我不认为这是重复的,其他人问和答的是如何,而不是在哪里。轮子呢?我很确定setup.py
不是控制盘分发的一部分。如果您认为\uuuuu init\uuuuuuuuuu.py
适合您的软件包,那就试试吧。我在主体中添加了更多的内容。我将在\uuu init\uuuuuuuuy.py
中加入检查,以确保它适用于所有分发方法。