如何通过Python动态导入模块实现模块热更新的长尾?

2026-04-20 03:560阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1256个文字,预计阅读时间需要6分钟。

如何通过Python动态导入模块实现模块热更新的长尾?

最近有个部署需求,需要读取py文件格式的配置项。我的实现思路是将配置文件解析到内存中。主要使用两种方法:1. 使用importlib.import_module和types.ModuleType方法;2. 使用import_module动态导入包,先来“

最近有个部署需求,需要读取py文件格式的配置项,我的实现思路是把配置文件解析到内存中。主要使用两种方法:

  • importlib.import_module
  • types.ModuleType

方法1、使用 import_module 动态导包

先来看看import module使用方法。

  • 主要有两个参数:
    • package:包名
    • name:模块名
  • 返回 module 对象

现在开始实现动态导包,成功读取到配置项。

import importlib settings = importlib.import_module("remote_settings")

这样子就能初步实现动态倒入了,但是我有个需求,就是我的系统好些个模块,用FOR循环导包,然后处理业务。然后问题来了,对同一个“包”导入多次,python并不会重新导入,而是返回内存缓存中该模块的地址。

下面验证一下,第一次写入a = 123,第二次写入a = "hello"。

输出结果,两次都是打印旧版本的变量,可见对同一个模块进行多次import_module,并不能实现热更新。

阅读全文
标签:方法

本文共计1256个文字,预计阅读时间需要6分钟。

如何通过Python动态导入模块实现模块热更新的长尾?

最近有个部署需求,需要读取py文件格式的配置项。我的实现思路是将配置文件解析到内存中。主要使用两种方法:1. 使用importlib.import_module和types.ModuleType方法;2. 使用import_module动态导入包,先来“

最近有个部署需求,需要读取py文件格式的配置项,我的实现思路是把配置文件解析到内存中。主要使用两种方法:

  • importlib.import_module
  • types.ModuleType

方法1、使用 import_module 动态导包

先来看看import module使用方法。

  • 主要有两个参数:
    • package:包名
    • name:模块名
  • 返回 module 对象

现在开始实现动态导包,成功读取到配置项。

import importlib settings = importlib.import_module("remote_settings")

这样子就能初步实现动态倒入了,但是我有个需求,就是我的系统好些个模块,用FOR循环导包,然后处理业务。然后问题来了,对同一个“包”导入多次,python并不会重新导入,而是返回内存缓存中该模块的地址。

下面验证一下,第一次写入a = 123,第二次写入a = "hello"。

输出结果,两次都是打印旧版本的变量,可见对同一个模块进行多次import_module,并不能实现热更新。

阅读全文
标签:方法