2

当我使用python-shell-send-buffer(Cc Cc) 时,我可以在 python shell 中看到我的主缓冲区的变化。

但是,如果我的缓冲区已导入模块,则不会重新加载它们。如何修复?

例如:
main.py:

from functions import foo
print 'a'

函数.py:

def foo():
    print 'bcdef'

因此,如果我更改foo()python-shell-send-buffer在 main.py 上运行-它给我的结果与foo()第一次读取 的相同

a
bcdef   # never changed
4

1 回答 1

0

如果你想这样做 - 使用 ipython。

创建配置“dev”(或其他):

ipython profile create dev
[ProfileCreate] Generating default config file: u'/home/username/.config/ipython/profile_dev/ipython_config.py'

并将这些行添加到“ipython_config.py”:

c.InteractiveShellApp.extensions = ['autoreload']
c.InteractiveShellApp.exec_lines = ['%autoreload 2']

然后在 Emacs 配置中为 python-mode 设置变量:

(setq
   python-shell-interpreter "ipython"
   python-shell-interpreter-args "--profile=dev"
)

以这个配置启动的 IPython 将在您重新发送代码时重新加载模块。

于 2013-02-15T17:20:41.903 回答