【发布时间】:2014-10-06 23:45:34
【问题描述】:
我经常在 AWS 上运行 IPython 实例,并且能够从终端向它发送代码。理想情况下,我想通过剪贴板执行此操作,即在剪贴板中加载代码并将其发送到远程 IPython 引擎。
例如,在 Emacs 中,我经常在缓冲区中有代码,我想在远程 IPython 内核上进行评估。
似乎有几种方法可以解决这个问题,但到目前为止没有一种方法对我有用:
在 ssh 会话上远程交互式 IPython 和 %paste:
在本地工作时,我通常可以选择我的文本,复制它,然后在 IPython 会话中执行%paste。这有效地将剪贴板中的代码传递给 IPython 进程。但是,如果我 ssh -X 到远程机器并远程启动 IPython,使用 %paste 不起作用,我会得到:UsageError: The clipboard appears to be empty"。这可能是有道理的,因为我的本地机器和远程机器有不同的剪贴板。我知道我可以使用%cpaste 在终端中输入代码,但我正在寻找一种允许通过剪贴板共享代码的解决方案。
这将我带到第一个问题:
- 有没有办法在我的本地机器和远程 IPython 之间共享剪贴板?
远程内核和 %paste :
另一种方法是启动一个远程内核,然后从我的本地计算机连接到它。为此,我在远程机器上启动以下命令:
$ ipython kernel
To connect another client to this kernel, use --existing kernel-30860.json
下载json文件后,在本地运行以下命令:
$ ipython console --existing kernel-30860.json --<remote_host_address>
其中<remote_host_address> 是远程机器的地址。
但是,当我执行上述操作时,魔法 %paste 和 %cpaste 未启用,即如果我从本地终端执行以下操作,我会得到:
In [1]: %paste
ERROR: Line magic function `%paste` not found.
如果我走这条路:有什么方法可以在客户端上启用这些魔法?
还有其他方法吗?
除了上述两种方法之外,还有什么方法可以将代码从剪贴板发送到 IPython 中的远程内核?
【问题讨论】:
标签: amazon-web-services emacs ssh ipython zsh