使用Python文件启动IPython Notebook。

5

我对python/ipython不是很熟悉,但有人问我是否可以使用特定的python文件启动ipython笔记本电脑。然后可以用于调试。 另一个软件将在临时文件夹中创建一个.py文件,并使用此文件调用ipython笔记本电脑。 这是否可能或者是否有意义?


1
我觉得你需要创建一个ipython配置文件,尝试使用ipython --help-all来查看更多你需要的信息。 - Anzel
4个回答

7

由于问题比较广泛,而且要求推荐,这是我的建议:

  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 已经不再维护和废弃。 - Aneesh Panoli

4
如果你想通过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模块导航到该URL。


谢谢!我会阅读并尝试理解 :-)关于“调试”:该应用程序接受用户配置的Python脚本,这些脚本可能存在错误。如果出现错误,希望用户可以使用ipython笔记本打开Python脚本。 - Antje Janosch
那听起来是一个相当酷的想法,可以使调试更加用户友好。我希望它对你有用! - metaperture
这个有文档记录吗?我找不到任何官方参考资料。 - drootang
命令行选项在此处有文档记录:https://jupyter-notebook.readthedocs.io/en/stable/config.html - metaperture
@metaperture,第一步已经无法工作了,有没有其他的解决方法?我一直在调试它,但是它还是不起作用。 - olaniyan oluwasegun

1
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笔记本环境所在的目录)和env_activate为您自己的。


-1

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接