编辑包在 jupyter 中不生效

Editing packages not taking effect in jupyter

我从 github 分叉了一个 repo 并复制到我的本地机器并在 Jupyter 中打开了所有文件。现在我可以访问所有 .py 文件和所有笔记本了。

假设我想向包中添加一个新功能,如下所示:

teste(self):
   return self

我通过在 here.py 文件中编写函数来完成此操作,并确保它可以正常工作,我通过在一个单元格中调用它并执行该单元格来在笔记本上测试它:

print(here.teste(worked)) 

但是,这不起作用。我的猜测是我没有更新包本身,所以函数 teste() 不存在。如何在本地将此更改提交到包(不使用拉取请求)。

您很可能需要重启 jupyter 内核才能使更改生效。

Git 只是一个版本控制系统,它不关心 python 做什么,也不影响 python 的工作方式。

Python 在导入时加载您的包 import my_package as mp。当您在 python 为 运行 时对该包进行更改时,它不会意识到这些更改。如果您尝试重新导入,python 只会检查它是否已经导入(这是真的)并且什么都不做。所以更改仍然没有生效。只有重启内核,导入包后才会生效。您还可以重新导入包含以下内容的包(python 3.4 及更高版本):

import importlib
importlib.reload(package)