- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在为嵌套 matplotlib (MPL) 库编写文档(个人),该文档与 MPL 自己提供的文档不同,由感兴趣的子模块包提供。我正在编写 Python 脚本,希望能够在未来的 MPL 版本中自动生成文档。
我选择了感兴趣的子模块/包,并希望列出它们的主要类,我将从中生成列表并使用 pydoc
处理它。
问题是我找不到指示 Python 从字符串加载子模块的方法。这是我尝试过的示例:
import matplotlib.text as text
x = dir(text)
i = __import__('matplotlib.text')
y = dir(i)
j = __import__('matplotlib')
z = dir(j)
这是通过 pprint 对上述列表进行 3 种比较:
我不明白 y
对象中加载了什么 - 它是基础 matplotlib
加上其他东西,但它缺少我想要的信息,即来自 的主类>matplotlib.text
包。它是屏幕截图中顶部的蓝色部分(x
列表)。
最佳答案
__import__
函数可能有点难以理解。
如果你改变
i = __import__('matplotlib.text')
至
i = __import__('matplotlib.text', fromlist=[''])
然后i
将引用matplotlib.text
。
在Python 3.1或更高版本中,您可以使用importlib
:
import importlib
i = importlib.import_module("matplotlib.text")
一些笔记
如果您尝试从子文件夹导入某些内容,例如./feature/email.py
,代码将类似于 importlib.import_module("feature.email")
在 Python 3.3 之前,如果您尝试导入的文件所在的文件夹中没有 __init__.py
,则您无法导入任何内容(在决定是否要保留之前请参阅 caveats)用于向后兼容的文件,例如与 pytest
)。
关于python - 使用 "__import__"从字符串变量导入模块给出的结果与普通导入语句不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55544831/
我现在正在尝试编码挑战。我之前无法更改代码del __builtins__.__dict__["__import__"] 但之后必须使用 import。我需要一种方法来恢复默认的 __builtins
这是我检查__import__()性能的地方 In [9]: %%timeit ...: math = __import__('math') ...: sqrt = math.sqrt
Python 允许使用别名导入,通过 ...as import 语句中的子句,如下所示: import mymodule as somealias from myothermodule import
假设我有一个包含以下文件的模块包。一个空文件 C:\codes\package\__init__.py 和一些重要文件: 一个位于C:\codes\package\first.py def f():
这个问题在这里已经有了答案: How can I import a module dynamically given its name as string? (10 个答案) 关闭 9 年前。 我在
我正在尝试导入一个模块,同时传递一些全局变量,但它似乎不起作用: 文件 test_1: test_2 = __import__("test_2", {"testvar": 1}) 文件 test_2:
__import__() 函数用于动态加载类和函数 。 如果一个模块经常变化就可以使用 __import__() 来动态载入。 语法 __import__ 语法: __import__(na
我正在尝试编写一些能够抵抗 __import__ 被更改的代码,因为 the Pydev debugger overrides __import__ . 所以,我需要一种访问内置 __import__
我的目录结构是这样的: |- project |- commands.py |- Modules | |- __init__.py | |- base.py | \- build.
我正在为嵌套 matplotlib (MPL) 库编写文档(个人),该文档与 MPL 自己提供的文档不同,由感兴趣的子模块包提供。我正在编写 Python 脚本,希望能够在未来的 MPL 版本中自动生
我的目录结构如下: root/ __main__.py files/ __init__.py foo.py bar.py
我有一个名为 jiva_tasks 的包,我试图通过 celery 导入它(使用 celeryconfig 的 CELERY_IMPORTS 属性。celery 使用的导入语句是这样的: __impo
这里是这个测试中的文件: main.py app/ |- __init__.py |- master.py |- plugin/ |- |- __init__.py |- |- p1.p
我正在查看一些包含两个 __import__ 语句的代码,第二个 __import__ 语句不起作用,除非第一个语句已经运行。 目录结构是这样的: dir1 |-__init__.py |-sub
我正在尝试使用 __import__ 函数从 foo.bar import object 复制 ,但我似乎碰壁了。 一个更简单的例子 from glob import glob 很简单:glob =
使用 __import__ 执行以下操作以便我可以动态指定模块的最佳方法是什么? from module import * 最佳答案 我找到的唯一方法: module = __import__(mod
当使用带点名称的 __import__ 时,例如:somepackage.somemodule,返回的模块不是 somemodule,无论返回什么似乎大多是空的!这是怎么回事? 最佳答案 来自 __i
当我动态导入派生类时,我需要重写 python 中的 __import__ 函数。 (我只能访问基类代码)。例如: Servers=[] class ServerBase(object): n
当a.py有这段代码时: class A(): def __init__(self): print 'hi' 我在这段代码中使用 A 类: import a b = a.A()
对不起,通用标题,一旦我了解了问题的根源,就会更改它我有以下结构: foo/ foo/__init__.py foo/bar/ foo/bar/__init__.py foo/bar/some_mod
我是一名优秀的程序员,十分优秀!