我在Mac(OSX Lion)上安装了iPython SciPy Superpack .
如果我使用matplotlib.pyplot进行绘图,它将弹出一个带有图形的窗口,然后关闭它以使ipython内核继续 .
from matplotlib import pyplot as plt
plt.plot([1, 2, 3], [3, 6, 9])
plt.show()
但是,如果我尝试内联(从 --pylab inline
或 --pylab=inline
开始)并导入pylab,而不是笔记本内部的图(我期望的),我得到一个外部窗口,它永远不会呈现任何东西 .
仍在外部窗口中:
import pylab
pylab.plot([1, 2, 3], [3, 6, 9])
pylab.show()
因为我用 ipython notebook --pylab=inline
启动了笔记本,它应该已经是这样了,但是如果我在单元格中使用 %pylab inline
并运行它,我会得到帮助,上面的相同代码会创建一个空白窗口,并挂起内核 - 我只能强行杀了窗户 . 这怎么办?
1 回答
好的 - 问题是原来的ipython笔记本进程仍在运行(我没有杀死它),带有内联标志的新进程正在另一个端口上运行 .
如果您遇到此问题 - 首先保存所有笔记本,然后检查您没有运行其他进程并杀死任何不应运行的进程 .
如果要避免这种混淆,可以在配置中设置
NotebookApp.port_retries=0
,在这种情况下,以后的笔记本调用将放弃,而不是侦听新端口 . (感谢minrk,在评论中)