python-import - 在导入到 python 解释器时,重新生成更新模块

  显示原文与译文双语对照的内容

英镑

如何强制 python 解释器在每次更改 MODULE 代码时加载 MODULE的最新代码版本?

或者至少重新加载最后修改过的版本


>>> from myModule import *



进入控制台,无需重新启动整个 python 控制台,并在任何时候重新设置所有的内容? 这是非常不愉快的调试行为。

---------长故事 -----------

我试图删除文件并再次导入它- 但它没有效果。 如果 MODULE 已经加载,它会执行'即使我再次创建. pyc 文件- 所以我希望它完全忽略我的"导入"命令"。

这也没有帮助:


>>> mymodule.myfunc() # the old version


>>> del myModule # unload mymodle from python conole/interpeter


... # now I removed. pyc


... # now I make some modifications in mymodule.myfunc() code 


>>> mymodule.myfunc() # module is unknonwn,.. . OK


>>> import myModule # try to load modified version


>>> mymodule.myfunc() # stil the old version :(((((, How it can remember?



我还尝试了Spyder这个特性叫做 "用户 MODULE Deleter ( UMD ) http://pythonhosted.org/spyder/console.html#reloading-modules-the-user-module-deleter-umd,我想应该做到这个,但是它似乎并没有出现。

也许我遗漏了一些东西- 可以解释一下如何使用它?

这是否受导入 MODULE 不在"工作目录"中但在PYTHONPATH中的影响?

时间: 原作者:

( Spyder开发人员在这里) 目前你无法直接在控制台( 但是我们正在考虑在未来改变它) 中重新加载模块。

UMD的想法是,如果你从imports的编辑器中运行一个文件,那么它将重新加载你的模块,但如果你运行了的编辑器。 如果你想直接在控制台中重新加载它们,它就不。

假设你开发了一个模块,然后你可以能在编辑器中使用它,并将它发送到我们的控制台。 是一些神奇的东西,当你happens的时候再重新加载。

...