GUI 与终端的不同结果
Different results in GUI vs terminal
我有一个文件包含 class 定义,另一个文件导入该模块。当我 运行 后者时,它似乎不知道我编辑了另一个文件并继续给我同样的错误。但是,当我在 Canopy 终端中 运行 它时,它可以按预期工作。谁能告诉我为什么会这样?
谢谢。
这是因为IPython保持你的内核进程运行ning,所以低层模块保持导入(具体来说它仍然在sys.modules
中列出)所以它不会重新当您重新 运行 您的主脚本时导入。 (就像如果您连续两次发出 import
命令它不会被重新导入一样。)虽然起初可能违反直觉,但这是一个故意的特性。详情见https://support.enthought.com/hc/en-us/articles/204469240-IPython-After-editing-a-module-changes-are-not-effective-without-kernel-restart
我有一个文件包含 class 定义,另一个文件导入该模块。当我 运行 后者时,它似乎不知道我编辑了另一个文件并继续给我同样的错误。但是,当我在 Canopy 终端中 运行 它时,它可以按预期工作。谁能告诉我为什么会这样?
谢谢。
这是因为IPython保持你的内核进程运行ning,所以低层模块保持导入(具体来说它仍然在sys.modules
中列出)所以它不会重新当您重新 运行 您的主脚本时导入。 (就像如果您连续两次发出 import
命令它不会被重新导入一样。)虽然起初可能违反直觉,但这是一个故意的特性。详情见https://support.enthought.com/hc/en-us/articles/204469240-IPython-After-editing-a-module-changes-are-not-effective-without-kernel-restart