首页 > 解决方案 > 如何在远程服务器上运行的 jupyter 中获取本地剪贴板?

问题描述

jupyter在远程服务器上运行,笔记本想要从本地浏览器剪贴板获取数据。

这是我有问题的代码。

from IPython import get_ipython
from base64 import b64decode
import sys

def from_clipboard():
    '''
    '''
    ipy = get_ipython()
    r = ipy.run_cell_magic( "javascript", "",
        '''
        navigator.clipboard.readText().then(clipText =>{
            console.log(clipText);
            var enc = btoa(clipText);
            IPython.notebook.kernel.execute('temp_var="' + enc + '"');
            console.log(enc);
        });
        ''')
    return b64decode(sys.modules['__main__'].temp_var).decode()
print(from_clipboard())

from_clipboard当我按回车 触发时。IPython.notebook.kernel.execute('temp_var="' + enc + '"');是填充,将在from_clipboard完成后执行。

所以sys.modules['__main__'].temp_var此时未定义。

有什么办法解决这个问题吗?

标签: pythonjupyter-notebook

解决方案


推荐阅读