python - iPython:如何从模块中导入新添加的功能?
问题描述
我在 iPython 中做了很多交互工作。目前,我正在使用 Jupyter QtConsole。假设我从这个开始:
from myFuncs import func1
然后我打开 myFuncs.py 并添加一个新函数 func2。如果我试试这个:
from myFuncs import func2
它没有看到它。大概 myFuncs 以某种方式被缓存。我已经阅读过reload
,但它似乎只适用于整个模块,而不适用于樱桃挑选的功能。autoreload
在这里似乎也无效。除了重新启动内核之外,有没有办法解决?
顺便说一句,Spyder 中的 ipython 可以在交互时更改文件。它也非常慢,所以可能相关?
解决方案
正如@jss367 提到的这里importlib
,您可以使用和sys
模块来实现这一点:
import importlib
import sys
importlib.reload(sys.modules['myFuncs'])
from myFuncs import func2
推荐阅读
- java - DatagramSocket.receive() 被多次调用
- html - 尝试使用 HTML 和 CSS 绘制三角形时出现空白屏幕
- php - 如何在循环外保存输出结果
- python - 了解 Python 装饰器 - 这是示例中的变量吗?
- java - 如何修复 java.lang.ClassCastException... 无法转换接口
- r - textOutput 与 selectInput 元素对齐
- angular - 角度 6 中的无模式(非模式)对话框
- css - IE 和 Edge 的高对比度下划线问题
- knex.js - 如何使用 db-browser for SQLite 在 knex 迁移和种子上预填充图像?
- postgresql - 通过 pgbouncer 连接时 pgAdmin 出现“没有这样的数据库”错误