gpt4 book ai didi

python - 尽管有 --pylab inline 选项,但 Matplotlib 输出未在 IPython Notebook 中内联显示

转载 作者:太空狗 更新时间:2023-10-30 00:11:19 24 4
gpt4 key购买 nike

我正在启动一个 IPython 笔记本,matplotlib 输出没有显示为内联,而是像这样:

<matplotlib.figure.Figure at 0x113035310>

代码如下:

from pylab import *
X = np.linspace(-np.pi, np.pi, 256,endpoint=True)
C,S = np.cos(X), np.sin(X)
plot(X,C)
plot(X,S)

show()

notebook 是用--pylab=inline 启动的,我检查了一下似乎是正确的:

enter image description here

这是 IPython 1.1.0。当我尝试使用 %pylab inline 时,我得到了类似的结果:

enter image description here

绘图未内联显示的其他原因可能是什么?

最佳答案

事实证明,内联显示(甚至可能首先生成图像)失败了,因为 matplotlib 无法加载 Vera.ttf 字体文件。它试图从错误的文件系统位置加载该文件,该位置是在 OS X 沙箱中运行的进程无法访问的。

10/29/13 11:59:02.000 PM kernel[0]: Sandbox: python(24173) deny file-read-data $HOME/Library/Developer/Xcode/DerivedData/IPython_Notebook-adcshxaaibpeztbztvthgauvufsx/Build/Products/Debug/IPython Notebook.app/Contents/Resources/virtualenv/lib/python2.7/site-packages/matplotlib/mpl-data/fonts/ttf/Vera.ttf

进程从这个位置运行:

$HOME/Library/Developer/Xcode/DerivedData/IPython_Notebook-adcshxaaibpeztbztvthgauvufsx/Build/Products/Release/IPython Notebook.app

(“调试”与“发布”)

在我清除调试位置并重新启动应用程序后,沙箱消息消失,内联绘图开始工作。当我将应用程序包复制到另一个位置并从那里启动它时,它再次失败。沙盒违规报告中的堆栈跟踪表明是 FreeType 尝试从旧位置加载字体:

0   libsystem_kernel.dylib          0x00007fff9054f5da __open + 10
1 libfreetype.dylib 0x000000010b789214 FT_Stream_New + 260
2 libfreetype.dylib 0x000000010b789e00 FT_Open_Face + 144
3 libfreetype.dylib 0x000000010b789d5e FT_New_Face + 46
4 ft2font.so 0x000000010b7259f0 FT2Font::FT2Font(Py::PythonClassInstance*, Py::Tuple&, Py::Dict&) + 698
5 ft2font.so 0x000000010b735fa6 Py::PythonClass<FT2Font>::extension_object_init(_object*, _object*, _object*) + 116

一些调查显示 matplotlib 维护着一个 fontList.cache 文件,该文件最终位于应用程序的沙箱容器目录中。移动应用程序包后,该缓存文件中的路径无效/不可访问。我 added code到我的应用程序以在启动时删除此缓存文件。

所以这不是一个真正的 IPython 问题,但我想我会发布这个以防它帮助那些将来也将笔记本嵌入沙盒 OS X 应用程序的人。

关于python - 尽管有 --pylab inline 选项,但 Matplotlib 输出未在 IPython Notebook 中内联显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19675235/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com