有时我们需要在不重启服务器的情况下加载并执行新文件。 严格来说Python没有热更功能,但今天介绍这个功能可以实现该方法,就叫:“类热更”吧 -- 类似热更新 ........ 此处略去一万字,进入正题。 准备好新文件my_config.py内容:
def mymod():
print("我是新文件的数据")
先配置好一个服务代码,这里用了简单的sanic,先编写两个简单的接口函数:
接口函数
在get1接口中添加新文件加载处理函数 load_sour()
文件加载处理函数.png
启动服务,调用/接口:
image.png
然后将新文件my_config.py拖至server.py同级目录
新文件处理
然后调用加载新文件接口:get1
文件加载
服务端加载并执行了新文件函数mymod:
调用新文件函数.png
主要的加载处理函数:
def load_sour():
print("执行:load_sour")
# imp 从 Python 3.4 之后弃用了,建议使用 importlib 代替
# import imp
# a = imp.load_source('mymod', 'my_config.py')
import importlib
a = importlib.machinery.SourceFileLoader('mymod','my_config.py').load_module()
a.mymod()
加载新文件函数
a = importlib.machinery.SourceFileLoader('函数名', '文件名.py').load_module()
a.mymod()