问题标签 [python-importlib]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 如何使用 importlib.import_module 在 Python 中导入模块
我正在尝试importlib.import_module
在 Python 2.7.2 中使用并遇到奇怪的错误。
考虑以下目录结构:
a/b/__init__.py
有以下代码:
(在实际代码"c"
中有一个名字。)
尝试import a.b
,产生以下错误:
我错过了什么?
谢谢!
python-importlib - 如何强制 importlib find_loader 专门使用特定路径?
imp
我正在尝试根据要使用的模块重新实现一些代码importlib
。imp.find_module
函数和之间存在细微差别importlib.find_loader
:
看起来importlib
正在回退到系统库,同时以独占方式imp.find_module
使用path
参数,最终引发异常。
如何强制importlib.find_loader
使用特定路径?
python - imp.get_suffixes() is deprecated,how to repair it?
I have encountered :
but i don't know how to repair it ? could any one explain for me in detail?
python - Python:如何从模块中动态导入所有方法和属性
我想动态加载一个模块,给定它的字符串名称(来自环境变量)。我正在使用 Python 2.7。我知道我可以做类似的事情:
这大致相当于
(哪里SETTINGS_MODULE = 'my_settings'
)。问题是,我需要一些相当于
因为我希望能够访问模块中的所有方法和变量。我试过了
但我得到一堆错误这样做。有没有办法在 Python 2.7 中动态导入模块的所有方法和属性?
python - 从包含全名的字符串中获取函数
我有一个像这样的字符串:
现在,如果我尝试 eval() 它可能会引发异常,因为我还没有导入 pwd (或者如果我有的话可能不会)。
所以我决定编写一个解析器:将字符串拆分为“。” 并获得一份清单:
然后采取lis[0]
,如果它不包含"("
或")"
我打电话
然后再次评估。
我可以让同样的事情变得更好吗?
python - 在 Python 2.7 中 importlib 可以一次导入多个模块吗?
我需要在同一个包中导入两个模块(在运行时确定),我想知道是否可以使用一个import_module
命令来完成。
基本上,我想要相当于
我可以做到的方法:
import_module
每个模块调用一次- 已经
__init__.py
导入两个模块,然后导入包 - 使用
__import__
,但这不使用importlib
并且文档不鼓励使用。
可能有比这更多的方法。可以通过一次调用来完成import_module
吗?如果做不到这一点,有没有一种被认为是标准方法的方法?
python - Python如何为模块名称取别名(重命名并保持向后兼容性)
我有一个名为 的 python 包foo
,我在导入中使用它:
现在我需要将foo
模块重命名为别的东西,比如说bar
,所以我想做:
但我想保持与现有代码的向后兼容性,所以旧的 ( foo.
) 导入应该也能正常工作,并且与bar.
导入一样。
这如何在 python 2.7 中完成?
python - Python 类的意外行为(importlib x 导入子系统)
这个问题是关于类型比较,而不是 python 对象。更准确地说,为什么在__main__
module 中定义的类型与由importlib.import_module()
. 请注意,test2()
如果所有类型都由importlib.import_module()
.
给定一个名为m.py的模块:
为什么python m.py test1失败,为什么python m.py test2没有?(用 py2.7.x 和 py3.4.x 测试)
python - 我将如何创建然后导入包含一组未指定模块的包?
使用 Python 3.3 或更高版本,我将如何创建并导入包含一组未指定模块的包?我希望导入包中的所有模块,而不必按名称导入每个模块。这将允许将新模块添加到包中,并且下次导入包时可以自动加载新模块,而无需对包进行任何其他更改。
从包的外部,我想导入和使用包看起来像这样:
从包的内部,我想导入和使用兄弟模块看起来像这样:
或这个:
python - 运行时补丁 python 模块
我正在寻找一种在替换导入时运行模块的方法。这将是run_patched
以下伪代码中缺少的魔法。
我知道单个方法可以用赋值代替,例如声明ArgumentParser.parse_args = print
,所以我很想弄乱全局变量sys.modules
,然后执行模块runpy.run_module
。
不幸的是,整个策略应该能够在多线程场景中工作。因此,更改应该只影响执行的模块,而程序的其他部分可以继续使用未修补的模块,就好像它们从未被触及过一样。