gpt4 book ai didi

python - 在 IPython 中重新加载子模块

转载 作者:IT老高 更新时间:2023-10-28 12:06:43 26 4
gpt4 key购买 nike

目前我正在开发一个包含子模块并使用 numpy/scipy 的 python 项目。 Ipython 用作交互式控制台。不幸的是,我对我现在使用的工作流程不是很满意,我希望能得到一些建议。

在 IPython 中,框架由一个简单的 import 命令加载。但是,经常需要更改框架的子模块之一中的代码。此时已经加载了一个模型,我使用 IPython 与之交互。

现在,框架包含许多相互依赖的模块,即当框架最初加载时,主模块正在导入和配置子模块。只有在使用 reload(main_mod.sub_mod) 重新加载模块时,才会执行对代码的更改。这很麻烦,因为我需要使用完整路径单独重新加载所有更改的模块。如果 reload(main_module) 也会重新加载所有子模块,但不重新加载 numpy/scipy..

最佳答案

IPython 带有一些 automatic reloading魔法:

%load_ext autoreload
%autoreload 2

它会在每次执行新行之前重新加载所有更改的模块。它的工作方式与 dreload 略有不同。有一些注意事项,输入 %autoreload? 看看会出现什么问题。


如果您想始终启用此设置,请修改您的 IPython 配置文件 ~/.ipython/profile_default/ipython_config.py[1] 并附加:

c.InteractiveShellApp.extensions = ['autoreload']     
c.InteractiveShellApp.exec_lines = ['%autoreload 2']

通过下面的评论感谢@Kos。

[1]如果没有~/.ipython/profile_default/ipython_config.py文件,需要先调用ipython profile create。或者该文件可能位于 $IPYTHONDIR

关于python - 在 IPython 中重新加载子模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5364050/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com