Python GUI和终端中的不同结果

Python GUI和终端中的不同结果,python,enthought,canopy,Python,Enthought,Canopy,我有一个包含类定义的文件和另一个导入该模块的文件。当我运行后者时,它似乎不知道我编辑了另一个文件,并继续给我相同的错误。但是,当我在天篷终端中运行它时,它可以按需要工作。谁能告诉我为什么会这样 谢谢。这是因为IPython使内核进程保持运行,因此较低级别的模块保持导入状态(特别是它仍然列在sys.modules中),因此在重新运行主脚本时不会重新导入。(就像如果连续两次发出import命令,它不会被重新导入一样。)虽然一开始可能违反直觉,但这是一个经过深思熟虑的特性。有关详细信息,请参见这是因为

我有一个包含类定义的文件和另一个导入该模块的文件。当我运行后者时,它似乎不知道我编辑了另一个文件,并继续给我相同的错误。但是,当我在天篷终端中运行它时,它可以按需要工作。谁能告诉我为什么会这样


谢谢。

这是因为IPython使内核进程保持运行,因此较低级别的模块保持导入状态(特别是它仍然列在
sys.modules
中),因此在重新运行主脚本时不会重新导入。(就像如果连续两次发出
import
命令,它不会被重新导入一样。)虽然一开始可能违反直觉,但这是一个经过深思熟虑的特性。有关详细信息,请参见

这是因为IPython使内核进程保持运行,因此较低级别的模块保持导入状态(特别是它仍然列在
sys.modules
中),因此在重新运行主脚本时不会重新导入。(就像如果连续两次发出
import
命令,它不会被重新导入一样。)虽然一开始可能违反直觉,但这是一个经过深思熟虑的特性。有关详细信息,请参见

在不提供任何上下文/源代码的情况下非常困难(几乎不可能)。更新.py文件时,似乎无法更新.pyc。奇怪。有几个用户因为你的问题不清楚而反对,并将其搁置。在我看来,您描述的事件顺序实际上相当清楚,他们的反对意见主要反映了他们对IDE的不熟悉。尽管如此,如果您现在已经理解了答案,并且尝试改进您的问题,那么这将是一个很好的练习,也是对社区的一个很好的服务,这样其他有类似问题的人在搜索时就更有可能找到它。例如,如果不提供任何上下文/源代码,.pyc似乎在更新.py文件时不会更新。奇怪。有几个用户因为你的问题不清楚而反对,并将其搁置。在我看来,您描述的事件顺序实际上相当清楚,他们的反对意见主要反映了他们对IDE的不熟悉。尽管如此,如果您现在已经理解了答案,并且尝试改进您的问题,那么这将是一个很好的练习,也是对社区的一个很好的服务,这样其他有类似问题的人在搜索时就更有可能找到它。例如,它不是关于GUI和终端,而是关于ipython和普通python(回顾起来很容易说!)谢谢!这非常有帮助!非常感谢。这非常有帮助!