我已经用 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。