双击打开一个 ipython 笔记本

Posted

技术标签:

【中文标题】双击打开一个 ipython 笔记本【英文标题】:double click to open an ipython notebook 【发布时间】:2015-09-06 07:51:06 【问题描述】:

相关帖子:Open an ipython notebook via double-click on osx

如何通过双击打开 Ipython 笔记本?我总是cd到笔记本的目录,然后在浏览器中输入ipython notebook,然后在浏览器中打开。这个步骤很不方便。

在windows下记得可以在浏览器中更改目录,但是在linux下无法通过浏览器浏览到其他目录,如果我想在另一个目录中打开一本新书,我必须重新启动另一个内核如上,这让我很烦。

有没有简单且经过验证的方法可以做到这一点?

【问题讨论】:

“双击” - 你在为你的 Linux 使用一些 GUI 吗? @Jongware,看起来现在有些人更喜欢桌面环境而不是纯命令行界面。真的很奇怪。 你链接的问题有 ubuntu 的解决方案。此解决方案不适合您吗? @Jongware 你没有使用 GUI 吗?我正在使用一个 @cel 每个人都不能成为极客(目前),命令行对于很多人来说可能是一件非常可怕的事情。尽管如此,python 的 notebook 是学习使用 python 的好工具(这本身可能是成为极客的第一步......)。从这个角度来看,.ipynb 文件的简单打开机制对于让大量用户使用 python 的笔记本至关重要。 【参考方案1】:

将 Yogesh 的有用评论“提升”为完全独立的答案:

Windows 10

在具有管理权限(例如 Win+X、A)的 CMD 或 PowerShell 窗口中:

    pip install nbopen python -m nbopen.install_win 利润!

双击*.ipynb 文件现在可以启动新服务器或重用现有实例。

【讨论】:

根据我的经验,脚本足够智能,不会在双击多个笔记本文件时生成多个服务器实例。它检测任何手动启动的服务器并重复使用这些服务器。到目前为止,我已经有几个月没有手动启动jupyter notebook 服务器了。【参考方案2】:
    点安装nbopen。

    打开Automator,新建应用程序

    拖放Run Shell ScriptPass input 更改为as arguments 复制/粘贴此脚本:
    variable="'$1'"
    the_script='tell application "terminal" to do script "nbopen '
    osascript -e "$the_script$variable\""
    

    将新应用程序保存到Applications目录为nb_open

    右键单击任何 ipynb 文件并选择“打开方式 > 其他”并在 Applications 文件夹中选择 nb_open。不要忘记选中“始终打开方式”。 选择一个 ipynb 文件,获取信息 (command + i) > 打开方式(如果尚未选择,请选择 nb_open)> 单击 Change All...。完成。

【讨论】:

这真是太棒了:这就是我来这里寻找的东西。另一个答案实际上并没有具体说明这一点,这是实际的解决方案。谢谢! 运行“python -m nbopen.install_win”按照说明页安装nbopen后与windows文件管理器集成..不需要任何脚本或任何东西。 如果您想在之后关闭 (zsh) 终端窗口,请使用:osascript -e "$the_script$variable &! exit\""【参考方案3】:

您可以使用像nbopen 这样的项目来处理该问题,并将在右侧笔记本上打开浏览器 + 如果 IPython 服务器尚未运行,则启动 IPython 服务器。

【讨论】:

回溯(最近一次调用最后):文件“/usr/local/bin/nbopen”,第 3 行,在 main() 文件“/usr/local/lib/python2.7 /dist-packages/nbopen.py”,第 49 行,在主 nbopen(args.filename, args.profile) 文件中“/usr/local/lib/python2.7/dist-packages/nbopen.py”,第 26 行,在 nbopen server_inf = find_best_server(filename, profile) 文件“/usr/local/lib/python2.7/dist-packages/nbopen.py”中,第 14 行,在 find_best_server 服务器 = [si for si in notebookapp.list_running_servers(profile= profile) \ AttributeError: 'module' 对象没有属性 'list_running_servers' 出现错误,双击也无反应。虽然文件图标变成了 ipynb @buzhidao 你用的是什么版本的IPython?您可能需要升级它才能使 nbopen 正常工作。 谢谢,它在我升级 ipython 笔记本时有效。我还有一个问题:当我双击并打开笔记本时。如果我在浏览器中退出笔记本,服务器会自动关闭还是仍在后台运行。 不,服务器不会退出。你必须通过进程管理器杀死它。

以上是关于双击打开一个 ipython 笔记本的主要内容,如果未能解决你的问题,请参考以下文章

如何在 IPython 笔记本中打开交互式 matplotlib 窗口?

更改 IPython/Jupyter 笔记本工作目录

如何将IPython v3笔记本转换为Jupyter v4?

ipython笔记本关闭后保存变量

无法建立 iPython 笔记本 Websocket 连接

如何将我的整个输出从iPython笔记本保存为.txt文件?