在 emacs Python shell(我正在运行 2.* Python)中,我正在导入一个我正在使用的 .py 文件并测试代码。但是,如果我更改代码,我不确定如何再次导入它。
从我目前的阅读看来
reload(modulename)
应该可以,但似乎不行。
也许只是关闭 python shell 并重新启动它就足够了,是否有相应的命令,或者您只是手动执行?
编辑:看起来 python-send-defun 和 python-send-buffer 是理想的,但更改似乎没有传播。
最佳答案
虽然 reload()
确实有效,但它不会更改对类、函数和其他对象的引用,因此很容易看到旧版本。最一致的解决方案是将 reload()
替换为 exec
(这意味着首先不使用 import
)或完全重新启动解释器.
如果您确实想继续使用 reload,请务必注意如何从该模块引用内容,并始终使用全名。例如。 import module
并使用 module.name
而不是 from module import name
。而且,即使很小心,您仍然会遇到旧对象的问题,这就是 reload()
不在 3.x 中的原因之一。
关于python - 在 emacs python shell 中重新加载更改的 python 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1816388/