importlib.reload导入()不将文件重新加载到ipython noteb中

2024-10-02 14:23:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个ipython笔记本在Jupyter实验室运行,它运行的是一个函数,它使用了我制作的名为“的外部模块的变量我的文件.py". 在

Myfile.py包含一些最初定义如下的变量:

Myterms = ['honda accord', 'ferrari', 'mazerati', 'dodge dumpster']

我对Myfile.py中的Myterms列表进行了一些编辑,然后将更改保存到文件中。在

^{pr2}$

我要做的是将Myterms列表从Myfile.py重新加载到笔记本中,这样当我调用列表中的变量时,它们会反映出所做的更改。在

我一直在使用this example中的代码版本:

import myfile
import importlib

def reloader(myfile):
    importlib.reload(myfile)
    from myfile import Myterms

reloader(myfile)

print(Myterms)

但是print(myterms)行仍然打印出来

['honda accord', 'ferrari', 'mazerati', 'dodge dumpster']

更新:由于某些原因,旧的Myterms列表似乎在内存中挂起,并且没有被覆盖,尽管importlib.reload函数。在做了更多的研究之后,this answer可能会提供一些关于原因的线索,但是我找不到解决办法。在


Tags: 文件函数pyimport列表笔记本importlibmyfile
1条回答
网友
1楼 · 发布于 2024-10-02 14:23:44

我想你是在寻找IPython中提供的:Autoreload。在

In [1]: %load_ext autoreload

In [2]: %autoreload 2

In [3]: from foo import some_function

In [4]: some_function()
Out[4]: 42

In [5]: # open foo.py in an editor and change some_function to return 43

In [6]: some_function()
Out[6]: 43

来源:autoreload

相关问题 更多 >