【问题标题】:Python importlib's analogue for imp.new_module()用于 imp.new_module() 的 Python importlib 类似物
【发布时间】:2015-11-17 11:40:42
【问题描述】:

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

【问题讨论】:

    标签: python python-3.x python-import python-importlib


    【解决方案1】:

    引用documentation (Emphasis mine) -

    imp.new_module(name)

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

    自 3.4 版起已弃用:改用 types.ModuleType

    例子-

    >>> import types
    >>> types.ModuleType('name')
    <module 'name'>
    

    为了表明它们是同义词 -

    >>> import imp
    >>> imp.new_module('name')
    <module 'name'>
    

    【讨论】:

    • 唯一的问题是,3.6 的文档确实推荐了 importlib 的 module_from_spec,但以这种方式使用它似乎是不可能的。使用 types.ModuleType 构造的模块具有 None 为 __spec__,但 module_from_spec(None) 不起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-07
    • 2014-04-28
    • 1970-01-01
    • 1970-01-01
    • 2012-09-05
    • 2022-11-11
    • 1970-01-01
    相关资源
    最近更新 更多