我使用zc.buildout来构建我的python应用程序环境。我想运行IPython笔记本并使用我的自定义软件包进一步测试和开发。
[buildout]
extends = buildout.cfg
parts +=
ipython_part
[versions]
ipython = 0.13.2
pyzmq = 13.0.2
[ipython_part]
#http://ipython.org/ipython-doc/stable/install/install.html#dependencies-for-the-ipython-html-notebook
#https://github.com/bearstech/ipython_notebook/blob/master/buildout.cfg
recipe = zc.recipe.egg
dependent-scripts = true
eggs =
ipython[zmq,notebook,test]
${myapplication:eggs}
启动笔记本电脑可以正常工作,但只要我创建一个新的笔记本,内核就会死掉。
[NotebookApp] Kernel started: c7c64caf-c966-4863-b37d-11cf11901882
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named IPython.zmq.ipkernel
在virtualenv中运行IPython就像魅力一样。我的问题与扩建设置有关。我知道这个answer。有用。
关于buildout&amp ;;的广泛使用IPython笔记本这一定是常见的情况。是否有任何扩建配方使其开箱即用?
答案 0 :(得分:1)
根据笔记本启动中的this answer,进程被分叉并丢失由buildout准备的sys.path。同样的解决方案也适用于您的情况。
编辑:我决定在我的“开发”食谱中添加一个初始化关键字:
[development]
recipe = zc.recipe.egg
eggs = ipython[all]
# ugly work-around needed for ipython nootbook
initialization =
import sys, os
os.environ['PYTHONPATH'] = ':'.join(sys.path)
更干净,而且大部分都有效。