每次添加新函数时是否都必须重新加载内核?

2024-10-17 02:37:22 发布

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

因此,我正在开发一个Python包,我的方法是,测试笔记本中的函数,然后将它们卸载到函数.py等等

/testpack/
    __init.py__
    functions.py
    plotting.py
/notebooks/
    plottingnotebook.ipynb

我的笔记本里有这个:

# Project package
module_path = os.path.abspath(os.path.join('../'))
if module_path not in sys.path:
    sys.path.append(module_path)
import testpack as tp # Import project package

但是当我在functions.py中添加新函数或对现有函数进行更改,然后在笔记本中重新导入时,这些函数就不可用了。你知道吗

但是,当我在笔记本中重新启动内核时,这就可以工作了。你知道吗

这是预期的行为吗?如果没有,我如何确保我所做的更改可以导入而不必重新启动内核?你知道吗


Tags: path方法函数pypackageinitossys
1条回答
网友
1楼 · 发布于 2024-10-17 02:37:22

Python认为您已经导入了模块,所以它跳过了它。可以使用importlib中的内置函数reload强制python重新导入模块。请注意,如果模块尚未导入,reload将引发namererror。这样的计划应该行得通

try:
    import importlib
    importlib.reload(tp)
except NameError: # It hasn't been imported yet
    import testpack as tp

相关问题 更多 >