【问题标题】:start ipython notebook with python file使用 python 文件启动 ipython notebook
【发布时间】:2014-10-13 11:15:24
【问题描述】:

我对 python/ipython 不是很熟悉,但有人问我是否可以使用特定的 python 文件启动 ipython notebook。然后它可以用于调试。 然后,另一个软件将在 temp 文件夹中创建一个 .py 文件,并使用该文件调用 ipython 笔记本。 有可能还是完全有意义?

【问题讨论】:

  • 我认为您需要创建一个ipython profile,尝试ipython --help-all 阅读更多您需要的内容。

标签: python jupyter-notebook ipython jupyter


【解决方案1】:

由于问题相当广泛并要求建议,因此我的建议如下:

  1. 跨平台 nbopen,它使用命令行或可选的资源管理器集成打开 ipynb:

https://github.com/takluyver/nbopen

请注意,我有一张完整的 Windows 资源管理器集成的开放票:

https://github.com/takluyver/nbopen/issues/12

[从github页面复制]

安装:

pip install nbopen

用法:

nbopen AwesomeNotebook.ipynb
  1. 在不启动浏览器界面的情况下运行 ipynb,有许多有用的选项:

https://github.com/paulgb/runipy

[从github页面复制]

安装:

$ pip install runipy

要将 .ipynb 文件作为脚本运行,请运行:

$ runipy MyNotebook.ipynb

要将每个单元格的输出保存回笔记本文件,请运行:

$ runipy -o MyNotebook.ipynb

要将笔记本输出保存为新笔记本,请运行:

$ runipy MyNotebook.ipynb OutputNotebook.ipynb

要运行 .ipynb 文件并生成 HTML 报告,请运行:

$ runipy MyNotebook.ipynb --html report.html

【讨论】:

  • runipy 未维护且已弃用。
【解决方案2】:

如果您正在谈论通过 Python 启动 iPython 笔记本服务器,我使用这个:

#!/usr/bin/env python
from IPython.terminal.ipapp import launch_new_instance
from IPython.lib import passwd
from socket import gethostname
import warnings
warnings.filterwarnings("ignore", module = "zmq.*")
sys.argv.append("notebook")
sys.argv.append("--IPKernelApp.pylab='inline'")
sys.argv.append("--NotebookApp.ip=" + gethostname())
sys.argv.append("--NotebookApp.open_browser=False")
sys.argv.append("--NotebookApp.password=" + passwd())
launch_new_instance()

显然,如果您愿意,您可以更改参数。

在我的工作中,我们有一个用例可以执行您所说的操作——自动生成一个 python 文件,然后加载一个新的 ipython 服务器供用户访问它。然而,这是一个非常特殊的用例——对于正常的调试,我建议从 iPython 开始,在错误消失之前不要创建 *.py 文件。

如果您实际上是在谈论自动导航到与 ipython 笔记本服务器提供的 python 文件相对应的页面,那么 (1) 确保您使用的是 ipython 2,并且 (2) 弄清楚您使用的是什么'想要的 url 是(它应该是确定性的)和 (3) 使用 webbrowser module 导航到该 url。

【讨论】:

  • 谢谢!我会看一下并尝试理解:-)。解释“调试”:应用程序从用户那里获取配置的 python 脚本,这可能是错误的。如果发生错误时用户可以使用 python 脚本启动 ipython 笔记本,那就太好了
  • 这听起来是个很酷的想法,可以让调试变得更友好。我希望它对你有用!
  • 这是否记录在任何地方?我找不到任何官方参考资料
【解决方案3】:
import subprocess, os

def executeJupyter():
    env_dir = "../main_env_dir/"
    os.chdir(env_dir)

    # source jupyter_env/bin/activate
    env_activate = "jupyter_env/bin/activate_this.py"

    activate_env = exec(open(env_activate).read(), {'__file__': env_activate})

    # Open jupyter notebook as a subprocess
    openJupyter = "jupyter notebook"
    subprocess.Popen(openJupyter, shell=True)

 executeJupyter()

确保将env_dir(您拥有jupyter notebook 环境的目录)和env_activate 更改为您自己的。

【讨论】:

    【解决方案4】:

    要使用某个笔记本目录启动 ipython 笔记本,请使用 --notebook-dir 命令行选项:

    ipython notebook --notebook-dir=/Users/harold/temp/
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多