首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python:“去导入”、“重新导入”、“重置导入”?

Python:“去导入”、“重新导入”、“重置导入”?
EN

Stack Overflow用户
提问于 2017-07-25 10:49:01
回答 1查看 4K关注 0票数 5

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

代码语言:javascript
复制
import my_util1 from my_utils

然后我给my_util1打电话。到目前为止,一切都还好。然后我在"my_util1“中修改了一些东西。现在我想调用(更新的) my_util1,但我不能:系统(Python?皮查姆?)“查看”仅是先前版本的my_util1。

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

这并不是要动态更改正在调试的实际代码。我要寻找的任务更简单--只要撤销“导入”操作,或者立即重置/清除/刷新所有“导入”就足够了。此外,此操作可以在调试器窗口中执行,而不是在代码窗口中执行。

EN

回答 1

Stack Overflow用户

发布于 2017-07-25 12:56:58

可以对sys.modules进行操作,以改变Python对当前导入内容的看法。引用Python文档:

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

样本使用情况:

代码语言:javascript
复制
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.
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45301092

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档