在非子目录中时,图像不会出现在ipython笔记本中

时间:2014-12-02 23:00:28

标签: image ipython ipython-notebook

我尝试使用代码

从绝对路径/Users/zhermes/[...]/image.png在ipython笔记本中显示png图像
<img src="/Users/zhermes/[...]/image.png" style="width: 80%">

但它不会嵌入(它会产生一个破碎的图像图标)。我已使用以下方式确认路径正确:

In: print os.path.exists('/Users/zhermes/[...]/image.png')
Out: True

如果我在本地目录中复制图像,即:./image.png,那么这样可以正常工作:

<img src="image.png" style="width: 80%">

如果我有一个像./images/image.png

这样的本地子目录,那么同样很好

这里出了什么问题?


修改:使用IPython.display.Image 工作,但我更喜欢使用降价。

2 个答案:

答案 0 :(得分:1)

您感到困惑的是urlpathbrowserkernellocalhostserver。 尝试将服务器放在 AWS 上,内核位于 rackspace 上的超级计算机上,并在笔记本电脑上使用chrome / firefox。

<img src="/Users/zhermes/[...]/image.png" style="width: 80%">使用路径而不是网址,因此无法使用。 <img src="image.png" style="width: 80%">使用一个URL,通过IPython的一些魔法将其映射到current_working/image.png目录(在AWS上)。

IPython.display.Image在rackspace上获取图片。

您在Markdown中提出的问题将访问laptop上的文件。出于安全原因,这是不可能的,否则所有互联网都可以访问您的所有硬盘。

答案 1 :(得分:1)

我有类似的情况,我的图片或pdf不会出现在我的ipython笔记本上。 Matt是对的,重要的是让呈现笔记本的本地服务器可以访问您尝试使用的文件。

在我的情况下,我有一个带笔记本的项目的目录如下所示:

.
├── LICENSE.txt
├── README.md
├── images
│   ├── conductor.png
│   └── simple-position-sensor.png
├── notebooks
│   ├── performance-characteristics.ipynb
│   ├── position-sensor.ipynb
│   ├── resistance-temperature-detectors.html
│   ├── resistance-temperature-detectors.ipynb
│   └── resistance-temperature-detectors.slides.html
├── pdfs
│   └── linear-approximation.pdf
└── scripts
    ├── interp1d.py
    └── numbered_eq.py

当我在notebooks文件夹中运行ipython notebook时,图像不会渲染(markdown或html)。他们确实使用IPython.display.Image进行渲染。

解决方案是在工作目录上运行ipython notebook,该目录包含ipython笔记本所需的所有文件。