python动态加载文件

在项目中需要完成一个功能,用户在前端编辑代码,然后在用例中通用特定的方式(@{关键字方法}@)可以调用编辑的代码块
因为后台是一个服务,服务启动的时候加载生成代码文件,用户更新时前端调用后台接口可同步更新,问题的关键在于如何调用用户定义的关键字函数

方案一
__init__.py文件中懒加载

在用户生成文件的package的__init__.py 文件中,使用__all__ 变量,如:

__all__ = ['py1','py2','py3'] // 包下有py1, py2, py3
1
在需要引用部分调用

from xxx import *
py1.callFun() //py1文件中有callFun方法
1
2
问题来了
动态生成.py文件,需要调用生成的.py文件中类和方法

import是用来加载Python模块的,其实import是调用内建函数import来工作的,这就使我们动态加载模块变成了可能

原文地址:https://www.cnblogs.com/guanhuohuo/p/12526215.html