- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个包布局:
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/
我有一个包布局: scenarios/ __init__.py X/ __init__.py Y/ __init__.py
显然,导入RichIPythonWidget会对模块pkgutil产生影响。 测试环境: IPython版本:2.1.0python 版本:2.7 和 2.7.6 显示问题的代码: import os
我正在尝试打印包中给定模块的所有子模块。但是,当运行该函数来执行此操作时,我得到的结果很复杂,任何人都可以解释为什么会发生这种情况以及如何避免它吗? 项目布局: /Users/me/projects/
我可以在不先解压缩的情况下找到压缩包中的模块吗? 我正在使用 pkgutil.walk_packages 检查包裹并使用 importlib 拉出所有模块. for _, pkg, _ in pkgu
所以我正在编写一些代码,需要从 CSV 文件中提取配置/数据,这些文件与应用程序打包在一起。据我了解,使用 pkgutil 是执行此操作的“正确”方法。所以我想做的是: import pkgutil
PEP420 使 __init__.py 文件可选:https://docs.python.org/3/whatsnew/3.3.html#pep-420-implicit-namespace-pac
我有一个 python 模块,其中包含需要在运行时加载的各种数据文件(一组表示曲线的 csv 文件)。 csv 模块运行良好 # curvefile = "ntc.10k.csv" raw =
我是一名优秀的程序员,十分优秀!