我对 python/ipython 不是很熟悉,但有人问我是否可以使用特定的 python 文件启动 ipython notebook。然后它可以用于调试。然后另一个软件将在 temp 文件夹中创建一个 .py 文件,并使用该文件调用 ipython 笔记本。有可能还是完全有意义?
4 回答
由于这个问题非常广泛并且需要建议,因此我的建议如下:
- 跨平台 nbopen,它使用命令行或可选的资源管理器集成打开 ipynb:
https://github.com/takluyver/nbopen
请注意,我有一张完整的 Windows 资源管理器集成的开放票:
https://github.com/takluyver/nbopen/issues/12
[从github页面复制]
安装:
pip install nbopen
用法:
nbopen AwesomeNotebook.ipynb
- 在不启动浏览器界面的情况下运行 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
如果您正在谈论通过 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。
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
更改为您自己的。
要使用某个笔记本目录启动 ipython 笔记本,请使用--notebook-dir
命令行选项:
ipython notebook --notebook-dir=/Users/harold/temp/