You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在不修改main.py的情况下动态路由Python模块导入?

实现动态模块路由的方案

你可以通过在src目录下新增包结构和配置文件来实现路由逻辑,无需修改main.py,具体步骤如下:

1. 调整目录结构

在src下创建module目录,并在其中添加__init__.py,最终目录结构如下:

src
├── main.py
├── module
│   └── __init__.py
├── module1
│   └── lib.py
├── module2
│   └── lib.py
└── __init__.py

2. 编写src/__init__.py

这个文件仅需存在即可,无需写入任何内容,作用是让src成为Python可识别的包。

3. 编写src/module/__init__.py

在这个文件中读取环境变量,动态导入对应模块的lib并对外暴露,代码如下:

import os
import importlib

# 读取环境变量,默认值设为1避免无配置时出错
module_id = os.getenv("MODULE", "1")
# 动态导入目标module下的lib模块
target_lib = importlib.import_module(f"src.module{module_id}.lib")

# 将目标lib的所有属性同步到当前module的命名空间,保证main.py的导入逻辑正常工作
__dict__.update(target_lib.__dict__)

验证方法

  • 设置环境变量export MODULE=1后运行main.py,会自动导入src.module1.lib
  • 设置export MODULE=2后运行,则导入src.module2.lib

所有路由逻辑都在src内部的包结构中实现,完全不需要修改原有的main.py或其他代码文件。

内容的提问来源于stack exchange,提问作者Montenegrodr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 05:38:11