jupyter notebook中执行过程中更新模块代码,再执行没有更新执行

1、排查方法

当环境中有多个同名文件,需要确定模块文件和更新文件是不是同一个文件。

如何知道现在系统中默认引用的是哪个目录下的base.py

比如要知道当前系统中引用的 base.py 文件的路径,可以使用 base.__file__ 属性查看模块的实际加载路径。

import base

# 打印 base.py 的实际路径
print(f"当前引用的 base.py 文件路径为: {base.__file__}")

解释

  • base.__file__:这个属性会返回 base.py 模块的完整文件路径,显示它是从哪个目录加载的。
  • 使用这个属性可以明确地知道当前使用的是哪个目录下的 base.py,从而确认模块引用是否正确。

进一步调试

如果怀疑 Python 引用了错误的模块,还可以打印 sys.path,查看模块搜索路径的顺序:

import sys

# 打印模块搜索路径
print("模块搜索路径为:")
for path in sys.path:
    print(path)

2、重新加载模块文件

在 Jupyter Notebook 中,Python 有时会缓存导入的模块,即使你修改了代码,重新运行单元格时也会继续使用旧的版本。这种行为可能导致更新后的代码未被加载。

解决方法:强制重新加载模块

使用 importlib.reload() 来强制重新加载模块。

import importlib
import update_sql

# 强制重新加载 update_sql 模块
importlib.reload(update_sql)

# 现在可以调用更新后的函数
update_sql.update_sql('daily_data')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值