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

Python如何通过已别名的父模块导入其所属的子模块?

问题解答

你设想的拆分导入写法无法直接默认生效,Python的import机制是全局检索顶层模块,不会默认关联你前一行导入的子模块作为顶层模块使用。

可行实现方案

方案1:别名映射(推荐,改造成本最低)

你只需要在每个文件的第一行keras相关导入前,加入如下一行代码即可,后续原项目所有对keras的引用都不需要修改:

import tensorflow.keras as keras

不管原代码是from keras import optimizers、from keras.layers import Dense还是直接调用keras.models.load_model(),都可以直接正常运行,所有keras都会指向tensorflow下的keras子模块。

方案2:模块注册(满足你示例的两行导入写法,不推荐)

如果必须要按照你示例的两行写法实现,可以通过手动注册模块到Python的全局模块缓存的方式实现:

import sys
from tensorflow import keras
# 将tensorflow.keras注册为顶层keras模块,覆盖默认检索逻辑
sys.modules['keras'] = keras

# 后续这行导入就会指向你注册的tensorflow.keras
from keras import optimizers

注意:该方案会全局修改Python的模块检索结果,如果运行环境中同时安装了独立Keras包,可能会影响其他依赖原生Keras的代码运行,非必要不建议使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 22:51:03