目前我正在开发一个包含子模块并使用 numpy/scipy 的 python 项目。 Ipython 用作交互式控制台。不幸的是,我对我现在使用的工作流程不太满意,我希望得到一些建议。
在 IPython 中,框架是通过一个简单的import
命令。然而,通常需要更改框架子模块之一中的代码。此时模型已加载,我使用 IPython 与其交互。
现在,框架包含许多相互依赖的模块,即,当框架最初加载时,主模块正在导入和配置子模块。仅当使用以下命令重新加载模块时才会执行对代码的更改reload(main_mod.sub_mod)
。这很麻烦,因为我需要使用完整路径单独重新加载所有更改的模块。如果reload(main_module)
还将重新加载所有子模块,但不会重新加载 numpy/scipy..
IPython 附带了一些自动重装 http://ipython.readthedocs.io/en/stable/config/extensions/autoreload.html magic:
%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
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)