有用 lpy 的吗?交流一下

你用的 python 版本? ipython 都是最新版吗?用 虚拟环境了吗?

我在ipython里试没问题

Emacs里试 async没问题 但是这个按钮用不了 image

我这边没有这个问题,你需要什么信息我可以提供

你再检查一下 python-shell-interpreter-args 的值,不会被其它设置覆盖了吧?

好像没问题 "--pylab --simple-prompt --no-color-info"

你这几个变量的值是啥呀

(setq python-shell-interpreter "ipython"
          ;; python-shell-interpreter-args "-i"
          python-shell-interpreter-args "--pylab"
          python-shell-prompt-regexp "In \\[[0-9]+\\]: "
          python-shell-prompt-block-regexp "\\.\\.\\.\\.: "
          python-shell-prompt-output-regexp "Out\\[[0-9]+\\]: "
          ;; python-shell-completion-setup-code
          ;; "from IPython.core.completerlib import module_completion"
          python-shell-completion-string-code
          ;; "';'.join(get_ipython().Completer.all_completions('''%s'''))\n"
          )

以及你是用mac还是linux/windows?

喔 解决了 args只保留–pylab就好了

1 个赞
python-shell-prompt-regexp  ">>> "
python-shell-prompt-block-regexp "\\.\\.\\. "
python-shell-prompt-output-regexp ""
python-shell-completion-setup-code 
"\ndef __PYTHON_EL_get_completions(text):\n    completions = []\n    completer = None\n\n    try:\n        import readline\n\n        try:\n            import __builtin__\n        except ImportError:\n            # Python 3\n            import builtins as __builtin__\n        builtins = dir(__builtin__)\n\n        is_ipython = ('__IPYTHON__' in builtins or\n                      '__IPYTHON__active' in builtins)\n        splits = text.split()\n        is_module = splits and splits[0] in ('from', 'import')\n\n        if is_ipython and is_module:\n            from IPython.core.completerlib import module_completion\n            completions = module_completion(text.strip())\n        elif is_ipython and '__IP' in builtins:\n            completions = __IP.complete(text)\n        elif is_ipython and 'get_ipython' in builtins:\n            completions = get_ipython().Completer.all_completions(text)\n        else:\n            # Try to reuse current completer.\n            completer = readline.get_completer()\n            if not completer:\n                # importing rlcompleter sets the completer, use it as a\n                # last resort to avoid breaking customizations.\n                import rlcompleter\n                completer = readline.get_completer()\n            if getattr(completer, 'PYTHON_EL_WRAPPED', False):\n                completer.print_mode = False\n            i = 0\n            while True:\n                completion = completer(text, i)\n                if not completion:\n                    break\n                i += 1\n                completions.append(completion)\n    except:\n        pass\n    finally:\n        if getattr(completer, 'PYTHON_EL_WRAPPED', False):\n            completer.print_mode = True\n    return completions"
python-shell-completion-string-code
"';'.join(__PYTHON_EL_get_completions('''%s'''))"

用的 spacemacs 默认,只是 args 按照你第一次贴的那个改了

你这个设置我这里用了会报错,我用的 archlinux,emacs 25.3

python 虚拟环境 3.6.3,包最新

我还是得用 spacemacs 默认的配置,然后只修改 args 才行

卧槽 刚发现 改一下args就能连远程的kernel了

(setq python-shell-interpreter-args "console --existing ~/Library/Jupyter/runtime/hpc14-kernel-120661.json --ssh hpc14")

1 个赞

这下主要问题差不多都解决了

而且这样绘图的好处是可以使用交互窗口拖放 3D 绘图的视角了,

image

1 个赞

lpy好像不兼容remote kernel , run-python可以使用 但是 lpy的evaluate会死机

给 abo-abo 提一下吧,说不定大神会抽空解决

1 个赞

用了 pylab 参数后不用再加 plt.show() 就可以弹窗显示图片了

记得 matplotlib 是可以设置要使用的后端的。比如 qt、wx、png 等。

设置为 qt、wx 等时,默认就会弹窗。

嗯,我记得使用 ob-ipython 时用 Inline 模式好像不能交互式绘图

lpy 怎样开始一个新的 Python 进程呢? abo-abo 只提到了可以 xp 切换进程,但是问题是 xp 只有一个 default 进程,没得换啊 :joy:

M-x run-python行不行

不行,仍然只有一个 default

@fuxialexander

不知道 lispy 有没有这样的功能,就是执行一个大标题时,可以跳过其中的一个小标题下的代码:

# * Title 1
# ** Title 1.1
print "This line will run."
# ** Title 1.2 [skip]
print "Skip this line." 
# ** Title 1.3
print "This line will run too."

结果得到

This line will run.
This line will run too.

这个功能对我非常重要,因为我大部分时候是交互式运行代码,有些时候代码有多种替代方案,然后我只运行其中一种(其中一个小标题),但是整体功能都包含在大标题下。

或者一键注释掉小标题下所有内容也行

outshine-comment-subtree-content in outshine package

其实我觉得最好还是写成function 在大block里直接调用

1 个赞