我有一个包含类定义的文件和另一个导入该模块的文件。当我运行后者时,它似乎不知道我编辑了另一个文件并继续给我同样的错误。但是,当我在Canopy Terminal中运行它时,它可以根据需要运行。谁能告诉我为什么会这样?
感谢。
答案 0 :(得分:4)
这是因为IPython使您的内核进程保持运行,因此较低级别的模块仍然是导入的(特别是它仍然在sys.modules
中列出),因此在重新运行主脚本时不会重新导入它。 (正如你连续两次发出import
命令一样,它不会被重新导入。)虽然最初可能是违反直觉的,但这是一个故意的特征。有关详细信息,请参阅https://support.enthought.com/hc/en-us/articles/204469240-IPython-After-editing-a-module-changes-are-not-effective-without-kernel-restart