如何强制IPython看到一个更新的库?

13 浏览
0 Comments

如何强制IPython看到一个更新的库?

我在我的IPython笔记本中进行以下操作:\n

import sys
sys.path.append('my_directory')
from db import *

\n这个操作很顺利。但是后来我在db.py中添加了一个新的函数,但是IPython无法识别它。即使我重置了所有内容并重新执行导入所有内容的单元格,它仍然无法识别。即使我使用reload,它仍然无法识别。即使我关闭IPython笔记本并重新启动它,它仍然无法识别。\n有什么办法可以强制IPython(或Python)识别文件的更新内容吗?

0
0 Comments

当我们在IPython中更新一个库时,有时候IPython并不会立即识别到更新后的库。这可能是因为IPython会缓存已经导入的模块,因此不会重新加载它们。为了解决这个问题,我们可以使用`autoreload`来强制IPython重新加载更新后的库。

在IPython中使用`autoreload`需要遵循以下步骤:

1. 首先,我们需要查看IPython的手册,手册中会有关于`autoreload`的详细说明。可以通过访问链接http://ipython.org/ipython-doc/dev/config/extensions/autoreload.html来查看。

2. 在IPython中,我们可以使用`%autoreload`来启用`autoreload`。通过设置`%autoreload 2`,IPython将自动重新加载所有已导入的模块。

3. 除了自动重新加载所有导入的模块外,还可以通过在一个特殊的模块列表中指定`%aimport modulename`来指定需要自动重新加载的模块。这些模块只有在设置`%autoreload 1`时才会被重新加载。

通过以上步骤,我们可以强制IPython重新加载更新后的库,以确保我们在IPython中使用到的库是最新的。

0