Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 巨蟒:“;“取消进口”&引用;“再进口”&引用;重置导入“;?_Python_Python 3.x_Include_Pycharm - Fatal编程技术网

Python 巨蟒:“;“取消进口”&引用;“再进口”&引用;重置导入“;?

Python 巨蟒:“;“取消进口”&引用;“再进口”&引用;重置导入“;?,python,python-3.x,include,pycharm,Python,Python 3.x,Include,Pycharm,我(用PyCharm)调试脚本。我在断点处停止,然后转到调试控制台窗口,从那里调用导入行,如下所示: import my_util1 from my_utils 然后我给我的孩子打电话。到目前为止,一切正常。然后我在“我的事业”中改变了一些东西。现在我想调用(更新的)my_util1,但我不能:系统(Python?Pycharm?)只能“看到”my_util1的早期版本 除了退出PyCharm并重新启动项目之外,是否有可能“重置”(刷新)我先前导入的内容,或者“重新导入”它 它不是关于动态更改

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

import my_util1 from my_utils
然后我给我的孩子打电话。到目前为止,一切正常。然后我在“我的事业”中改变了一些东西。现在我想调用(更新的)my_util1,但我不能:系统(Python?Pycharm?)只能“看到”my_util1的早期版本

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

它不是关于动态更改正在调试的实际代码。我正在寻找的任务更简单——只要撤消一个“导入”操作,或者一次重置/清除/刷新所有“导入”就足够了。此外,该操作可以在调试器窗口中完成,而不是在代码窗口中完成。

可以通过操纵来改变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.

引入新代码时是否重新启动调试器?不,我没有。我想,也许有一种方法可以“重新包含”一项功能,就像我包含它一样。我想这是可行的。我错了吗?可能是我链接的答案的副本现在仍然有效,因为这不是在PyCharm中完成的。它很接近,但不相同。您链接的答案是动态更改正在调试的实际代码,而无需重新启动调试器。我的问题只是重新包含一个实用程序,它不一定是正在调试的代码的一部分。但是无论如何,多谢你,这两种可能性似乎都还没有发展