Python:" de-import","重新导入","重置导入"?

时间:2017-07-25 10:49:01

标签: python python-3.x include pycharm

我调试(在PyCharm中)一个脚本。我停在断点处,然后进入调试控制台窗口,然后从那里调用导入行,如下所示:

import my_util1 from my_utils

然后我调用my_util1。到目前为止,一切都很好。然后我改变" my_util1"中的内容。现在我想调用(更新的)my_util1,但我不能:系统(Python?Pycharm?)"看到"只有先前版本的my_util1。

是否有可能"重置" (刷新)我之前导入的内容,或者重新导入"重新导入"它,除了退出PyCharm并重新启动项目?

它不是动态更改正在调试的实际代码。我正在寻找的任务更简单 - 只需撤消“导入”即可。操作,或重置/清除/刷新所有'进口'立刻。此外,操作可以在调试器窗口内完成,而不是在代码窗口中完成。

1 个答案:

答案 0 :(得分:1)

可以操纵

sys.modules来改变Python对当前导入内容的想法。引用Python文档:

  

这是一个将模块名称映射到已加载的模块的字典。这可以被操纵以强制重新加载模块和其他技巧。但是,替换字典不一定按预期工作,从字典中删除基本项可能会导致Python失败。

样本用法:

import sys
import my_util1 from my_utils

# Now sys.modules['my_utils'] exists and my_util1 is a local name.

del sys.modules['my_utils']

# my_util1 still exists as a local name, but Python has "forgotten" the import.

import my_util1 from my_utils
# This re-imports my_utils and binds the new my_util1.