Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我应该在何时/何地检查Python的最低版本?_Python_Pip_Compatibility - Fatal编程技术网

我应该在何时/何地检查Python的最低版本?

我应该在何时/何地检查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

告诉我如何检查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
的顶部,或者是属于您的第一个将被调用的脚本。最好的做法是不要在
\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
中加入检查,以确保它适用于所有分发方法。