gpt4 book ai didi

Python pkgutil.walk_packages 不返回子包

转载 作者:太空狗 更新时间:2023-10-29 22:31:04 25 4
gpt4 key购买 nike

我有一个包布局:

scenarios/
__init__.py
X/
__init__.py
Y/
__init__.py
Z/
__init__.py

我已经执行了

import scenarios
pkgutil.walk_packages(scenarios.__path__, scenarios.__name__ + '.')

但这会生成一个仅包含包 X 和 Z 的列表,缺少 Y。我可以使用什么来获取所有子目录?

谢谢

最佳答案

这是一个理论:walk_packages 函数尝试导入列出的每个模块。当它到达子包“Y”时,它尝试导入它,但出现错误。默认情况下,此错误被抑制。一个副作用是 walk_packages 函数不会递归到 Y。您可以使用“onerror”关键字参数来测试这个理论。例如:

import sys, pkgutil
from traceback import print_tb

def onerror(name):
print("Error importing module %s" % name)
type, value, traceback = sys.exc_info()
print_tb(traceback)

import scenarios
pkgutil.walk_packages(scenarios.__path__, scenarios.__name__ + '.', onerror=onerror)

关于Python pkgutil.walk_packages 不返回子包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17024605/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com