Python 查找包内的所有包,即使是在鸡蛋中

发布于 2024-09-01 13:05:35 字数 119 浏览 8 评论 0原文

给定一个Python包,如何自动找到它的所有子包?

我曾经有一个函数可以浏览文件系统,查找其中包含 __init__.py* 文件的文件夹,但现在我需要一种即使整个包都在的情况下也能工作的方法。在一个鸡蛋里。

Given a Python package, how can I automatically find all its sub-packages?

I used to have a function that would just browse the file system, looking for folders that have an __init__.py* file in them, but now I need a method that would work even if the whole package is in an egg.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

清风不识月 2024-09-08 13:05:35

pkgutil 可能会有所帮助。

另请参阅这个问题。 ,这是该问题<的代码示例< /a>.

kaizer.se

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)

~unutbu

import pkgutil
for importer, modname, ispkg in pkgutil.walk_packages(path=None, onerror=lambda x: None):
    print(modname)

pkgutil could be helpfull.

Also see this SO question., this is a code example form that question.

kaizer.se

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)

~unutbu

import pkgutil
for importer, modname, ispkg in pkgutil.walk_packages(path=None, onerror=lambda x: None):
    print(modname)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文