问题标签 [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.

0 投票
3 回答
154703 浏览

python - 如何使用 importlib.import_module 在 Python 中导入模块

我正在尝试importlib.import_module在 Python 2.7.2 中使用并遇到奇怪的错误。

考虑以下目录结构:

a/b/__init__.py有以下代码:

(在实际代码"c"中有一个名字。)

尝试import a.b,产生以下错误:

我错过了什么?

谢谢!

0 投票
3 回答
1309 浏览

python-importlib - 如何强制 importlib find_loader 专门使用特定路径?

imp我正在尝试根据要使用的模块重新实现一些代码importlibimp.find_module函数和之间存在细微差别importlib.find_loader

看起来importlib正在回退到系统库,同时以独占方式imp.find_module使用path参数,最终引发异常。

如何强制importlib.find_loader使用特定路径?

0 投票
2 回答
603 浏览

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?

0 投票
3 回答
10480 浏览

python - Python:如何从模块中动态导入所有方法和属性

我想动态加载一个模块,给定它的字符串名称(来自环境变量)。我正在使用 Python 2.7。我知道我可以做类似的事情:

这大致相当于

(哪里SETTINGS_MODULE = 'my_settings')。问题是,我需要一些相当于

因为我希望能够访问模块中的所有方法和变量。我试过了

但我得到一堆错误这样做。有没有办法在 Python 2.7 中动态导入模块的所有方法和属性?

0 投票
2 回答
89 浏览

python - 从包含全名的字符串中获取函数

我有一个像这样的字符串:

现在,如果我尝试 eval() 它可能会引发异常,因为我还没有导入 pwd (或者如果我有的话可能不会)。

所以我决定编写一个解析器:将字符串拆分为“。” 并获得一份清单:

然后采取lis[0],如果它不包含"("")"我打电话

然后再次评估。

我可以让同样的事情变得更好吗?

0 投票
1 回答
473 浏览

python - 在 Python 2.7 中 importlib 可以一次导入多个模块吗?

我需要在同一个包中导入两个模块(在运行时确定),我想知道是否可以使用一个import_module命令来完成。

基本上,我想要相当于

我可以做到的方法:

  • import_module每个模块调用一次
  • 已经__init__.py导入两个模块,然后导入包
  • 使用__import__,但这不使用importlib并且文档不鼓励使用。

可能有比这更多的方法。可以通过一次调用来完成import_module吗?如果做不到这一点,有没有一种被认为是标准方法的方法?

0 投票
3 回答
23428 浏览

python - Python如何为模块名称取别名(重命名并保持向后兼容性)

我有一个名为 的 python 包foo,我在导入中使用它:

现在我需要将foo模块重命名为别的东西,比如说bar,所以我想做:

但我想保持与现有代码的向后兼容性,所以旧的 ( foo.) 导入应该也能正常工作,并且与bar.导入一样。

这如何在 python 2.7 中完成?

0 投票
0 回答
46 浏览

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 测试)

0 投票
1 回答
397 浏览

python - 我将如何创建然后导入包含一组未指定模块的包?

使用 Python 3.3 或更高版本,我将如何创建并导入包含一组未指定模块的包?我希望导入包中的所有模块,而不必按名称导入每个模块。这将允许将新模块添加到包中,并且下次导入包时可以自动加载新模块,而无需对包进行任何其他更改。

从包的外部,我想导入和使用包看起来像这样:

从包的内部,我想导入和使用兄弟模块看起来像这样:

或这个:

0 投票
0 回答
238 浏览

python - 运行时补丁 python 模块

我正在寻找一种在替换导入时运行模块的方法。这将是run_patched以下伪代码中缺少的魔法。

我知道单个方法可以用赋值代替,例如声明ArgumentParser.parse_args = print,所以我很想弄乱全局变量sys.modules,然后执行模块runpy.run_module

不幸的是,整个策略应该能够在多线程场景中工作。因此,更改应该只影响执行的模块,而程序的其他部分可以继续使用未修补的模块,就好像它们从未被触及过一样。