【发布时间】:2013-05-18 07:40:41
【问题描述】:
我已经用 zc.buildout 构建了一个环境,包括 IPython 脚本。
我的问题很简单:
如果我在控制台中启动 IPython,一切正常,我在 sys.path 中得到了所有的鸡蛋
但是如果我启动 IPython notebook,我只会得到默认的系统路径。
有没有办法在启动笔记本时包含我所有的鸡蛋?
问候,
蒂埃里
【问题讨论】:
我已经用 zc.buildout 构建了一个环境,包括 IPython 脚本。
我的问题很简单:
如果我在控制台中启动 IPython,一切正常,我在 sys.path 中得到了所有的鸡蛋
但是如果我启动 IPython notebook,我只会得到默认的系统路径。
有没有办法在启动笔记本时包含我所有的鸡蛋?
问候,
蒂埃里
【问题讨论】:
所以,我猜在笔记本启动的某个地方,一个进程被分叉了,这意味着 sys.path 将被重置,而 buildout 的技巧将无济于事。
我解决了如下问题,虽然有点脏:
如下创建入口点:
setup(...
entry_points = {
'console_scripts': ['ipython = <yourpackage>.ipython:main']
})
将以下内容放入/ipython.py:
from IPython.frontend.terminal.ipapp import launch_new_instance
import os
import sys
def main():
os.environ['PYTHONPATH']=':'.join(sys.path)
sys.exit(launch_new_instance())
现在,运行 bin/ipython notebook 将为您提供您期望的 sys.path。
【讨论】: