确定给定的Python模块是否是标准库的一部分

时间:2013-02-02 13:11:18

标签: python module standard-library

如何确定Python模块是否属于标准库? 换句话说:是否有类似于perl核心列表实用程序的Python?

我会用这个来设定我在开发过程中对可移植性的期望。 如果它依赖于实现,我对CPython很感兴趣。

到目前为止我找到的最佳答案是:

Which parts of the python standard library are guaranteed to be available?

即在Python标准库文档的索引页面上搜索模块名称:http://docs.python.org/2/library/。但是,这不如使用实用程序方便,也没有告诉我任何有关最低要求版本的信息。

2 个答案:

答案 0 :(得分:9)

使用setuptools安装脚本(setup.py)时, test 表示所需模块,并更新安装依赖项列表以在需要时添加backport。

例如,假设您需要collections.OrderedDict课程。文档说明它是在Python 2.7中添加的,但是backport is available适用于Python 2.4及更高版本。在setup.py中,您在collections中测试了该类的存在。如果导入失败,请将backport添加到您的需求列表中:

from setuptools import setup

install_requires = []

try:
    from collections import OrderedDict
except ImportError:
    install_requires.append('ordereddict')

setup(
    # ...
    install_requires=install_requires
)

然后在您需要OrderedDict的代码中使用相同的测试:

try:
    from collections import OrderedDict
except ImportError:
    # use backported version
    from ordereddict import OrderedDict

依靠pipeasy_installzc.buildout或其他安装工具为您提取额外的库。

最近添加的许多核心库都有可用的后端端口,包括json(称为simplejson),argparsesqlite3pysqlite包,使用{{ 1}}作为后备)。

必须阅读文档; Python文档是优秀,对于新模块,类,方法,函数或参数,文档中明确提到了它们添加的Python版本。

答案 1 :(得分:0)

您应该阅读该模块的文档。你说你想要一个实用工具,因为阅读文档是不方便的。但你是在对模块进行编码?你应该花点时间阅读本案例中的文档,除非你只是通过粘贴你在网上找到的神秘片段来制作一个弗兰肯斯坦的怪物。

你不会使用几十个和几十个模块,你可以花一点时间阅读文档。此外,通常,文档确实提到了Python引入它们的版本。

文档很好:使用它们。