如何确定 Python 模块是否是标准库的一部分?换句话说:是否有 Python 等效于 perl 的 corelist 实用程序?
我会用它来设定我对开发过程中可移植性的期望。如果它依赖于实现,我对 CPython 很感兴趣。
到目前为止,我找到的最佳答案是:
即在 Python 标准库文档的索引页面上搜索模块名称:http: //docs.python.org/2/library/。但是,这不如使用实用程序方便,并且也没有告诉我有关最低要求版本的任何信息。
如何确定 Python 模块是否是标准库的一部分?换句话说:是否有 Python 等效于 perl 的 corelist 实用程序?
我会用它来设定我对开发过程中可移植性的期望。如果它依赖于实现,我对 CPython 很感兴趣。
到目前为止,我找到的最佳答案是:
即在 Python 标准库文档的索引页面上搜索模块名称:http: //docs.python.org/2/library/。但是,这不如使用实用程序方便,并且也没有告诉我有关最低要求版本的任何信息。
使用 setuptools 安装脚本 ( setup.py
) 时,您测试所需的模块,并更新安装依赖项列表以添加反向端口(如果需要)。
例如,假设您需要该collections.OrderedDict
课程。文档声明它是在 Python 2.7 中添加的,但有一个可在 Python 2.4 及更高版本上运行的反向移植。在setup.py
你测试类的存在collections
。如果导入失败,请将反向端口添加到您的需求列表中:
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
并依靠pip
or easy_install
or or zc.buildout
or 其他安装工具为您获取额外的库。
许多最近添加的核心库都有可用的向后移植,包括json
(称为simplejson
)、、argparse
(sqlite3
包pysqlite
,from pysqlite2 import dbapi as sqlite3
用作后备)。
您仍然需要阅读文档;Python 文档非常好,对于新模块、类、方法、函数或参数,文档在它们添加的 Python 版本中明确提及。
您应该阅读该模块的文档。你说你想要一个实用程序,因为阅读文档很不方便。但是您正在针对模块进行编码?无论如何,在这种情况下,您应该花点时间阅读文档,除非您只是通过将您在网上找到的神秘片段粘贴在一起来制作科学怪人的怪物。
你不会使用几十个模块,你可以花点时间阅读文档。此外,通常,文档确实提到了引入它们的 Python 版本。
文档很好:使用它们。