如何在IPython中自动重新加载模块?

时间:2016-01-27 12:46:42

标签: module ipython

在开始之前,我想说我不是程序员;我是一个极客和一个工程师。因此,我喜欢编码并在学术上使用它。 Stackoverflow教会了我80%以上关于python的知识。

我的问题是我需要先手动重新加载我的脚本中的模块,首先将importlib导入到我的终端中,然后再使用importlib.reload(*modulename*)重新加载它们。当我通过我的IPython终端运行它时,我希望我的IPython终端能够自动重新加载我的python脚本中的模块。这个功能在以前的版本中使用魔术命令%autoreload提供,这对我来说似乎不起作用。

我查看了@ IPython文档(链接1),尝试使用%load_ext autoreload命令(链接2)和import ipy_autoreload后跟%autoreload 2命令(链接3)。我在stackoverflow中发现了超过4个其他答案,告诉我在链接2或3中执行操作;它对我不起作用。如果有人知道如何恢复自动重载,它会让我的手指更快乐。

链接1:https://ipython.org/ipython-doc/3/config/extensions/autoreload.html

链接2:https://stackoverflow.com/a/18216967/5762140

链接3:https://stackoverflow.com/a/4765191/5762140

我正在使用Windows 7的64位安装。我有安装Anaconda3(3.18.9 64位)的IPython 4.0.1。当我尝试使用%load_ext autoreload时,我可以根据要求提供有关我的IPython终端错误追溯的屏幕。

1 个答案:

答案 0 :(得分:20)

上面的所有链接都使用ipython中的命令。您应该尝试编辑配置文件。打开终端并完成以下步骤。

步骤1:确保安装了最新的ipython版本

$ ipython --version

第2步:找出配置文件的位置

$ ipython profile create

步骤3:根据配置文件的位置使用编辑器打开配置文件。我用原子。例如:

$ atom ~/.ipython/profile_default/ipython_config.py

步骤4:在配置文件中查找以下行:

c.InteractiveShellApp.extensions = []

将其更改为:

c.InteractiveShellApp.extensions = ['autoreload']

然后取消注释该行

查找

c.InteractiveShellApp.exec_lines = []

将其更改为:

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

然后取消注释该行

完成。