通过api启动ipython笔记本(脚本)

时间:2014-05-06 15:37:12

标签: python ipython ipython-notebook

如何在python脚本中执行等效的ipython notebookipython profile?它应该是直截了当的,但我无法追踪正确的调用。 (除其他外,我盲目地尝试了IPython.start_kernel()from IPython.extensions import notebook以及变体,但到目前为止没有运气。)

在我的情况下,我不能只启动子进程并执行ipython notebook:我在一个奇怪的配置,我可以从开始菜单(Windows 7)运行python,但不是从命令行或者来自剧本。 (要完全清楚:我确实知道python可执行文件的位置,但是我不能直接执行它。)

1 个答案:

答案 0 :(得分:0)

经过一番调查和反思,我认为最好的解决方案是让IPython自己启动笔记本电脑。所以问题是模拟从命令行调用ipython时会发生什么:

% ipython notebook <directory>

IPython是通过一个简短的python脚本从命令行启动的。 我导入它但让它认为它是作为__main__模块运行的:

import sys, imp
ipython_path = r"/path/to/ipython-script"

sys.argv = [ ipython_path, "notebook" ]
_ipython = imp.load_source('__main__', ipython_path)

要提供与当前目录不同的目录,只需将其添加到sys.argv作为附加参数:

sys.argv = [ ipython_path, "notebook", "path/to/notebooks" ]

命令行ipython脚本在哪里? 在Windows上,IPython是在ipython_script.py目录中Scripts的帮助下启动的(例如,C:\Python27\Scripts\ipython_script.py)。在OS X上,它可以由python脚本Library/Python/2.7/bin/ipython启动。 (我通过easy_install安装了IPython;我想可能还有其他配置。)你可以像这样跟踪你的python安装:

import IPython
import inspect
inspect.getsourcefile(IPython)

这是模块的路径,而不是启动器脚本。该脚本将位于附近的目录中。