python - 在 emacs python shell 中重新加载更改的 python 文件

标签 python emacs

在 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/

相关文章:

python - 相同的绘制对象如何同时出现? (pygame)

python - 按组随机播放 Pandas 数据框

emacs - 如何在 Emacs 中将 ESC 绑定(bind)到键盘转义退出?

emacs - 如何将填充段落与 supercite 结合起来?

emacs - 如何要求 gnutls 在 emacs 24 中使用客户端证书

emacs - 如何在 org-mode 中给括号中的单词加下划线以导出到 LaTeX

python - Azure 机器学习环境 : install a package from a file?

python - 散列字典?

python - Geojson 到 MongoDB/Mongoengine 的属性格式

C 代码解析器,用于跟踪项目中的函数调用和变量访问(emacs 兼容性会很好)