【问题标题】:Open an ipython notebook via double-click on osx通过双击 osx 打开 ipython notebook
【发布时间】:2013-04-16 01:12:42
【问题描述】:

我已经下载了几个 ipython 笔记本,我想在浏览器选项卡中打开它们,而不是导航到我下载它们的目录并运行 ipython notebook notebook_name.ipynb

我意识到这可能意味着我很懒,但这对我来说似乎是一个常见的用例。我错过了什么明显的东西吗?

【问题讨论】:

标签: macos osx-mountain-lion ipython ipython-notebook


【解决方案1】:

使用Pineapple 应用程序打开和处理您的 IPython/Jupyter 笔记本。很酷。

更新:

现在有nteract,这是一个新的类似 jupyter 的桌面应用程序。安装后,将其设为打开.ipynb文件的默认应用。然后只需双击任何笔记本即可立即启动它。

【讨论】:

  • 很棒的独立应用程序。我想说它们非常适合科学计算的新学习者。也许高级用户会想要与他们现有的 Anaconda 安装相配合的东西?
【解决方案2】:

我发现了一种使用 Automator 的好方法(2017 年 10 月;信息来自 here):

  1. 打开 Automator 并创建一个新的应用程序
  2. 从列表中添加Run Shell Script 拖放;可能需要这些设置 Shell: /bin/bashPass input: as arguments
  3. 在下面插入代码;如有必要,调整 jupyter 的路径

代码

#!/bin/sh
variable="'$1'"
the_script='tell application "terminal" to do script "/usr/local/bin/jupyter notebook '
osascript -e "${the_script}${variable}\""
  1. 保存脚本为应用程序 (!)
  2. 尝试打开一个.ipynb文件并将默认应用更改为这个新创建的。

注释

  1. 这将打开一个终端并运行jupyter notebook 命令,这样您就可以从那里中断和停止笔记本服务器。 另请注意,您无法在 Automator 中测试类似的应用程序,但需要添加 Get Specified Finder Items 并在其中插入一些测试笔记本(仅用于测试目的)。李>

正如 cmets 中指出的,还有两个注意事项:

  1. 为避免使用笔记本向浏览器历史记录发送垃圾邮件,您可以在隐身/私人模式下启动笔记本:Run jupyter notebook in incognito window

  2. 如果您想在一台服务器上运行笔记本并且不介意额外的工具,Sachit Nagpal 指出(谢谢),也可以使用nbopen。要使用此工作流程,只需将 "/usr/local/bin/jupyter notebook ' 替换为 "nbopen '。任何其他工具都应该可以正常工作。

【讨论】:

  • 不客气。我想在此处添加 注释:我刚刚遇到了一个小问题,我会双击 *.ipynbfile 但脚本不会结束,甚至会超时。这似乎是由终端应用程序处于(长时间空闲?)的某些情况引起的。由于我无法弄清楚这些是哪些,但只是通过尝试手动打开终端意外修复它,有更多经验的人可以提供提示吗?
  • 这是否每次都启动一个新服务器?有没有办法通过已经运行的服务器启动文件?并且只有在没有 jupyter 服务器正在运行时才开始新服务器
  • @SachitNagpal 是的,这将每次启动一个终端和 jupyter notebook 内核。应该有一种方法可以通过一些 shell 命令来实现这一点。基本上你可以告诉终端运行任何(例如 bash-)脚本。但是,我在 bash 脚本编写方面经验并不丰富,但您可能必须运行 jupyter notebook list(或 ps ?)才能找到正在运行的内核和一些 ID。然后您可以区分并使用一些命令将文件/路径附加到正在运行的内核。您可能想针对 shell 命令提出一个单独的问题,以便在运行的内核中打开文件并查找 grep
  • 感谢@gr4nt3d 解释如何做到这一点。目前,我已经能够使用 nbopen (github.com/takluyver/nbopen) 实现这一目标
  • 谢谢。这比安装其他一些软件包更好。
【解决方案3】:
  1. 点安装nbopen
  2. 打开Automator,新建应用程序

    • 拖放Run Shell Script
    • Pass input 更改为as arguments
    • 复制/粘贴此脚本:
    variable="'$1'"
    the_script='tell application "terminal" to do script "nbopen '
    osascript -e "${the_script}${variable}\""
    
  3. 将新应用程序保存到Applications目录为nb_open

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

【讨论】:

    【解决方案4】:

    这里发布的应用程序对我来说效果很好:http://bioequity.org/2013/11/16/ipynbviewer/ 您还需要下载 iTerm2,如该页面所述。

    请注意,如果文件名中有空格,这将不起作用,但您可以对其进行修改,使其与文件名中的空格一起使用。按住 Control 键单击 iPyNbViewer.app 并选择“显示包内容”。编辑文件 Contents/Resources/Scripts/main.scpt。将“POSIX 路径”的三个实例更改为“POSIX 路径的引用形式”。现在它将使用文件名中的空格。

    要将所有 .ipynb 文件设置为使用应用程序打开,您需要在其中一个文件上获取信息(命令-I)并选择 iPyNbViewer 应用程序以打开所有 .ipynb 文件。

    如果这是双击 iPython 笔记本文件的默认行为,那就太好了...

    【讨论】:

    • 我开发了这个工具 iPyNbViewer。感谢 Dan 的建议,我更新了 quoted form of POSIX path 的所有三个实例。享受吧!
    【解决方案5】:

    我想出了一种在 Ubuntu 上执行此操作的方法。 (它对我有用,但我不承担任何责任)。解释了here。简而言之,您需要create a new MIME type,然后编写一个脚本作为启动它们的应用程序:

    #!/bin/bash
    netstat -tln |grep "8902"
    # if not found - equals to 1, start it
    if [ $? -eq 1 ]
    then
    ipython notebook / --no-browser --port=8902 &
    sleep .5
    fi
    xdg-open http://localhost:8902/notebooks$1
    

    这总是在端口 8902 上打开笔记本服务器,但首先检查是否已经有服务器在运行,如果有,则使用它。 然后您可以使用ubuntu tweak 选择您的脚本作为您刚刚创建的 MIME 类型“IPython Notebook”的默认应用程序。 在我看来,不是很优雅,但值得。

    【讨论】:

      【解决方案6】:

      PyCharm 现在支持 Jupyter ipynb 文件:

      来自文档https://www.jetbrains.com/help/pycharm/editing-jupyter-notebook-files.html

      但是我觉得这个功能现在只有专业版才有;希望将来会添加到社区版本中。

      【讨论】:

        【解决方案7】:

        看看this link。 将 bash 脚本放在保存 ipython 笔记本的文件夹中,然后双击它打开一个笔记本实例。从上面的链接中,bash 脚本只有:

        path=$0             # path is path to this file
        cd ${path%/*.*}     # clip off the file name to get directory path and cd
        ipython notebook --pylab inline
        

        最后,您需要chmod u+x 脚本使其可执行,然后您就完成了。

        【讨论】:

          【解决方案8】:

          我使用了命令行应用程序“nbopen”并将其放入 Platypus 包装器中,以便在 Macos 上拖放并双击打开。 'nbopen' 可以使用 'pip' 下载 当 DanHickstein 如上所述使用时,它运行良好。 我的代码唯一的问题是它需要 nbopen 命令的完整路径。我知道我应该能够以某种方式使用“which nbopen”,但不能让它工作。 这是我的鸭嘴兽代码:

          #!/bin/bash
          #  Opens ipynb files in a Jupyter Notebook
          #  echo $1
          #  $1 is the path of the dropped file
          /Users/robw/anaconda/bin/nbopen $1
          #  Based on an idea from 
          #  https://www.quora.com/Is-there-a-straightforward-way-to-open-an-IPython-Notebook-in-Windows-by-double-clicking
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2015-09-06
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-03-12
            • 2016-08-06
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多