小编Sam*_*loH的帖子

动态python模块导入和numba

我有一个模块和一个模块加载器。该模块使用 numba。

当我使用 动态加载模块后调用模块的函数时importlib,我遇到了几个错误。当我执行static导入并调用该函数时,一切正常。

当我不使用 numba 时,静态和动态导入都可以正常工作。

这是一个重现问题的简单示例:

模块mymod.py

from numba import jit

@jit(nopython=True)
def process():
    a = 5
    res = a + 5
    return res
Run Code Online (Sandbox Code Playgroud)

有效的模块加载器:(runb.py静态导入)

import mymod

def main():
    res = mymod.process()
    print(res)

if __name__=="__main__":
    main()
Run Code Online (Sandbox Code Playgroud)

不工作的模块加载器:(run.py动态导入)

from pathlib import Path
import importlib.util

def main():
    module_path = "./mymod.py"
    spec = importlib.util.spec_from_file_location(Path(module_path).name, module_path) 
    module = importlib.util.module_from_spec(spec)
    spec.loader.exec_module(module)

    res = module.process()

    print(res)

if __name__=="__main__":
    main()
Run Code Online (Sandbox Code Playgroud)

软件上下文:

  • Ubuntu 19.04
  • 蟒蛇 3.7.5 …

python numba python-importlib

6
推荐指数
1
解决办法
232
查看次数

标签 统计

numba ×1

python ×1

python-importlib ×1