1. ホーム
  2. python

[解決済み] Pythonのパッケージに含まれるモジュールをすべてリストアップしてください。

2022-09-12 02:53:41

質問

Python パッケージの一部であるすべてのモジュールを見つける簡単な方法はありますか? 私が見つけたのは この古い議論 を見つけました。これは本当に決定的ではありませんが、私は os.listdir() に基づいた私自身のソリューションを展開する前に、明確な答えを持っているのが大好きです。

どのように解決するのですか?

はい、あなたは pkgutil この方法で、(os.listdir が助けにならない) eggs や zip などに含まれているかどうかに関係なく、すべてのパッケージを同様に扱うことができます。

import pkgutil

# this is the package we are inspecting -- for example 'email' from stdlib
import email

package = email
for importer, modname, ispkg in pkgutil.iter_modules(package.__path__):
    print "Found submodule %s (is a package: %s)" % (modname, ispkg)

どうやってインポートするのですか?単に __import__ を通常通り使用します。

import pkgutil

# this is the package we are inspecting -- for example 'email' from stdlib
import email

package = email
prefix = package.__name__ + "."
for importer, modname, ispkg in pkgutil.iter_modules(package.__path__, prefix):
    print "Found submodule %s (is a package: %s)" % (modname, ispkg)
    module = __import__(modname, fromlist="dummy")
    print "Imported", module