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

顶层导入是否优先于底层导入?Jupyter Notebook导入优先级及替换问题

问题解答

1. utils.py中的pd指向哪个库?

utils.py里的pd指向原生pandas库。Python的模块导入具有独立性,Notebook中import modin.pandas as pd只是在当前Notebook的命名空间里把modin.pandas别名为pd,不会影响utils.py内部的导入逻辑——utils.py里的import pandas as pd会独立加载原生pandas模块,并将其绑定到自身命名空间的pd变量上。

2. 能否不修改utils.py让它使用modin.pandas作为pd?

可以实现,核心思路是在导入utils之前,将modin.pandas注入到Python的模块缓存中,让import pandas语句直接加载modin.pandas。具体在Notebook中修改代码如下:

import sys
import modin.pandas as pd

# 将modin.pandas注册为系统模块中的"pandas"
sys.modules["pandas"] = pd

# 再导入utils,此时utils里的import pandas as pd会拿到modin的实现
import utils

这样utils.py内部执行import pandas as pd时,Python会优先从sys.modules中读取已注册的modin.pandas对象,而不会去加载原生pandas,从而实现不修改utils.py的前提下替换pd的指向。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 21:31:09