8

我已经在 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 inlineor开头--pylab=inline)并导入 pylab,而不是笔记本内部的绘图(我期望的),我会得到一个外部窗口,它永远不会呈现任何内容。

仍然在外部窗口中:

import pylab
pylab.plot([1, 2, 3], [3, 6, 9])
pylab.show()

既然我已经用它启动了笔记本,ipython notebook --pylab=inline它应该已经是这样了,但是如果我%pylab inline在单元格中使用并运行它,我会得到帮助,上面的相同代码会创建一个空白窗口,并挂起内核 - 我只能强制杀死窗户。这应该如何工作?

4

1 回答 1

4

好的 - 问题是原来的 ipython notebook 进程仍在运行(我没有杀死它),而带有 inline 标志的新进程正在另一个端口上运行。

如果您遇到此问题 - 首先保存所有笔记本,然后检查您没有运行其他进程并杀死任何不应该运行的进程。

如果你想避免这种混乱,你可以NotebookApp.port_retries=0在你的配置中设置,在这种情况下,以后的笔记本调用将放弃,而不是监听一个新的端口。(归功于 minrk,在评论中)

于 2012-12-16T13:14:39.473 回答