6

Pythonモジュールが標準ライブラリの一部であるかどうかを確認するにはどうすればよいですか?言い換えれば、Perlのコアリストユーティリティに相当するPythonはありますか?

これを使用して、開発中の移植性に対する期待を設定します。実装に依存する場合は、CPythonに興味があります。

私がこれまでに見つけた最良の答えはこれです:

Python標準ライブラリのどの部分が利用可能であることが保証されていますか?

これは、Python標準ライブラリドキュメントのインデックスページでモジュール名を検索することです:http://docs.python.org/2/library/。ただし、これはユーティリティを使用するよりも便利ではなく、最低限必要なバージョンについても何も教えてくれません。

4

2 に答える 2

9

setuptoolsインストールスクリプト(setup.py)を使用する場合は、必要なモジュールをテストし、インストールの依存関係リストを更新して、必要に応じてバックポートを追加します。

たとえば、collections.OrderedDictクラスが必要だとします。ドキュメントには、Python 2.7で追加されたと記載されていますが、Python2.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または他のインストールツールをeasy_install使用zc.buildoutして、追加のライブラリを取得します。

最近追加されたコアライブラリの多くには、json(と呼ばれるsimplejsonargparse、、sqlite3pysqliteパッケージ、from pysqlite2 import dbapi as sqlite3フォールバックとして使用)などのバックポートがあります。

それでもドキュメントを読む必要があります。Pythonのドキュメントは優れており、新しいモジュール、クラス、メソッド、関数、または引数については、追加されたPythonのバージョンでドキュメントに明示的に記載されています。

于 2013-02-02T13:28:54.590 に答える
0

モジュールのドキュメントを読む必要があります。ドキュメントを読むのは不便なので、ユーティリティが必要だと言います。しかし、あなたはモジュールに対してコーディングしていますか?オンラインで見つけた不思議な断片を貼り付けてフランケンシュタインの怪物を作っているだけでない限り、この場合はとにかくドキュメントを読むのに少し時間がかかるはずです。

何十ものモジュールを使用することはありません。ドキュメントを読むのに少し時間を費やす余裕があります。また、一般的に、ドキュメントには、Pythonのどのバージョンがそれらを導入したかが記載されています。

ドキュメントは良いです:それらを使用してください。

于 2013-02-02T17:44:50.617 に答える