Python - 检查模块可用性的实用程序

时间:2016-10-15 02:57:03

标签: python python-3.x

是否有一个命令行(最好)实用程序,它列出了与该版本库中特定模块捆绑在一起的所有major版本的python?

例如json模块仅适用于版本2.6 +

因此运行此实用程序应列出:

2.6
2.7
.. and the 3.x versions

1 个答案:

答案 0 :(得分:1)

没有这样的内置命令。

如果互联网连接不是问题,您只需查看https://docs.python.org/<version-number>/library/<module-name>.html的网址:

from urllib.request import urlopen
from urllib.error import HTTPError


def has_module(version, module_name):
    try:
        urlopen('https://docs.python.org/{}/library/{}.html'.format(version, module_name))
    except HTTPError as e:
        if e.code == 404:
            return False
        raise e
    return True

使用示例:

In [2]: has_module('2.7', 'asyncio')
Out[2]: False

In [3]: has_module('3.3', 'asyncio')
Out[3]: False

In [4]: has_module('3.4', 'asyncio')
Out[4]: True

必须在python3中运行,但python2版本并不难写。

如果你想要一个离线工具,你总是可以解析页面https://docs.python.org/<version-number>/library/index.html并获得该python版本的模块页面列表,然后只需构建一个dict,将python版本映射到可用的模块。