如何验证一组模块是否已安装且是最新的



我开发了一个脚本,我小组中的其他研究人员需要快速处理我们在实验过程中生成的大量数据。但是,我是我们小组中唯一的"Python人",因此我不能总是指望他们安装最新的模块,如Numpy和Scipy。

在我的脚本中,有没有办法验证他们的模块安装并提示他们安装/升级?

您可以使用distutils.version.LooseVersion

from distutils.version import LooseVersion
import numpy
if LooseVersion(numpy.__version__) < LooseVersion('1.10'):
    raise ValueError('upgrade numpy! You need version 1.10 to run this.')
    # or "print" instead of an exception.

如果您不知道软件包是否已安装,您也可以try import模块:

try:
    import numpy
except ImportError:
    raise ValueError("install numpy!")

执行此操作的方法是使用名为"setup.py"的文件。在此文件中,您可以定义脚本的所有要求,用户将通过调用 python setup.py install 自动安装它们。

一些可能有帮助的资源:

关于安装脚本的 Python 文档:https://docs.python.org/2/distutils/setupscript.html

示例 setup.py 文件:https://github.com/pypa/sampleproject/blob/master/setup.py

关于 setup.py 的另一个类似答案:https://stackoverflow.com/a/4740640/7299836

最新更新