如何在Python控制台中进行调试而无需在PyCharm中重新加载包?

时间:2014-08-22 12:30:58

标签: python debugging module pycharm

PyCharm运行一个交互式Python控制台(在我的例子中是IPython),但是当我在代码中进行更改时,PyCharm不会重新导入我正在编辑的模块,因此控制台会运行旧代码。

更重要的是,如果我通过Run setup.py Task安装了旧软件包,Python会在控制台中import mymodule as mm之后导入旧软件包。

一种解决方法是编辑文件中的代码并在没有交互式控制台的情况下重新运行它,但这不是一个非常优雅的解决方案。

如何让交互式控制台保持最新状态并即时更新模块?

2 个答案:

答案 0 :(得分:5)

我目前在Pycharm 4.0.6中使用Python 3.4.3,并且基于Anton的答案,我将以下内容添加到我的起始脚本中:

from importlib import reload

然后您可以随意使用'reload(my_module)' - 但是每次重新加载都是手动的,如果您真正想要的话,我不会知道完全自动化的解决方案。

答案 1 :(得分:1)

IPython有一个非常好的函数,递归地重新加载所有模块。它被称为dreload,来自深度重新加载。您只需在控制台中手动运行:

dreload(myCoolModule)

这是手动的,但它并不困扰我。如果我记得很清楚,如果删除名称空间导入,则它不起作用:from myCoolModule import *