1

我已经用 zc.buildout 构建了一个环境,包括 IPython 脚本。

我的问题很简单:

  • 如果我在控制台中启动 IPython,一切正常,我在 sys.path 中得到了所有的鸡蛋

  • 但是如果我启动 IPython notebook,我只会得到默认的系统路径。

有没有办法在启动笔记本时包含我所有的鸡蛋?

问候,

蒂埃里

4

1 回答 1

1

所以,我猜在笔记本启动的某个地方,一个进程被分叉了,这意味着 sys.path 将被重置,而 buildout 的技巧将无济于事。

我解决了以下问题,虽然它有点脏:

  1. 创建一个入口点,如下所示:

    setup(...
          entry_points = {
              'console_scripts': ['ipython = <yourpackage>.ipython:main']
          })
    
  2. 将以下内容放入 /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。

于 2013-06-01T14:53:09.783 回答