在Jupyter Notebook中,使用from train import *导入train.py中的函数变量时,如果修改了train.py并重新运行导入语句所在的单元格,修改后的函数可能不会被正确导入。这是因为Jupyter Notebook会缓存导入的模块,只有在Notebook重新启动或明确重新加载模块时才会更新。
为了解决这个问题,可以尝试以下两种方法:
使用importlib模块重新加载train.py模块:
Copyimport importlib
import train
importlib.reload(train)
from train import *
这样,当修改train.py并重新运行加载代码时,train.py模块会被重新加载,并且修改后的函数会正确导入。
使用IPython的autoreload魔术命令:
%load_ext autoreload
%autoreload 2
from train import *
这将启用IPython的自动重新加载功能,并确保在每次运行导入语句时都会重新加载修改后的模块。
通过以上方法之一,即可解决在Jupyter Notebook中重新导入修改后的train.py模块的问题。