Python importlib对imp.new_module()的模拟

use*_*053 7 python python-import python-3.x python-importlib

PyCharm告诉我imp已被弃用,所以我想知道是否有任何类似的imp.new_module for importlib.

Ana*_*mar 13

引自文件(强调我的) -

imp.new_module(名称)

返回一个名为name的新空模块对象.该对象未插入sys.modules中.

从版本3.4开始不推荐使用:改为使用types.ModuleType.

示例 -

>>> import types
>>> types.ModuleType('name')
<module 'name'>
Run Code Online (Sandbox Code Playgroud)

展示他们是如何成为同义词 -

>>> import imp
>>> imp.new_module('name')
<module 'name'>
Run Code Online (Sandbox Code Playgroud)

  • 唯一的问题是,3.6文档确实推荐了importlib的module_from_spec,但似乎不可能以这种方式使用它.使用types.ModuleType构造的模块具有None作为`__spec__`,但`module_from_spec(None)`不起作用. (3认同)