- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试打印包中给定模块的所有子模块。但是,当运行该函数来执行此操作时,我得到的结果很复杂,任何人都可以解释为什么会发生这种情况以及如何避免它吗?
项目布局:
/Users/me/projects/project
setup.py
/project
__init__.py
tool.py
/projectdir
__init__.py
test.py
/Users/me/projects/project/project/tool.py:
import pkgutil
for importer, modname, ispkg in \
pkgutil.iter_modules('project.projectdir',
prefix='project.projectdir.'):
if not ispkg:
print '{}'.format(modname)
/Users/me/projects/project/project/projectdir/test.py
def one():
return 'one'
理想情况下,这应该打印出 /projectdir
内的所有模块,但我得到的结果是混合的。
这是正确的:
$ cd /Users/me
$ project
>> project.projectdir.test
这些都是错误的:
$ cd /Users/me/projects
$ project
>>
$ cd /Users/me/projects/project
$ project
>> project.projectdir.one
最佳答案
使用.__path__
可以避免使用相对路径进行迭代的任何机会。在您的示例中,您将传递 /Users/me/projects/project
,而不是传递 project.projectdir。
。
import pkgutil
# import module that will be inspected
import project
package = project
for importer, modname, ispkg in pkgutil.iter_modules(package.__path__, prefix='project.projectdir.'):
if not ispkg:
print '{}'.format(modname)
关于python - 与 pkgutil.iter_modules 结果不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40246845/
我有一个包布局: 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 =
我是一名优秀的程序员,十分优秀!