ImportError:无法导入在tensorflow上加载图像文件所需的Python Imaging Library(PIL)

Mun*_*Xan 43 python python-imaging-library python-2.7 pillow tensorflow

我正在做一个关于udacity的深入学习课程.对于第一次分配,当我试图运行低于问题1的脚本时,我收到了这个错误.所以我试图卸载PIL和枕头,然后单独安装,但我没有成功.我需要帮助的人.我正在使用与python笔记本的tensorflow docker图像.

# These are all the modules we'll be using later. Make sure you can import them
# before proceeding further.
from __future__ import print_function
import matplotlib.pyplot as plt
import numpy as np
import os
import sys
import scipy
import tarfile
from IPython.display import display, Image
from scipy import ndimage
from sklearn.linear_model import LogisticRegression
from six.moves.urllib.request import urlretrieve
from six.moves import cPickle as pickle
# Config the matplotlib backend as plotting inline in IPython
%matplotlib inline 

url = 'http://commondatastorage.googleapis.com/books1000/'
last_percent_reported = None

def download_progress_hook(count, blockSize, totalSize):
    percent = int(count * blockSize * 100 / totalSize)

   if last_percent_reported != percent:
     if percent % 5 == 0:
  sys.stdout.write("%s%%" % percent)
  sys.stdout.flush()
else:
  sys.stdout.write(".")
  sys.stdout.flush()

last_percent_reported = percent
Run Code Online (Sandbox Code Playgroud)

https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/udacity/1_notmnist.ipynb

你可以在这里看到代码.问题1 错误图像后,我在代码块中 出错

我尝试了这两个链接或解决方案中的每一个和所有内容:

stackoverflow上的解决方案1

stackoverflow上的解决方案2

操作系统:

使用docker和tensorflow安装在带有IPython笔记本的容器中.

从蟒蛇-c输出"进口tensorflow;打印(tensorflow )".

0.11.0

小智 58

pip install pillow

然后更换 from IPython.display import display, Imagefrom IPython.display import display from PIL import Image

  • 不要忘记在pip install之后重新启动你的env,如:source deactivate; 源激活..等 (6认同)
  • 这也可以!康达安装枕头 (3认同)

ror*_*989 14

我遇到了同样的问题.但我正在为张量流使用不同的设置.操作系统:Ubuntu 14.04 LTS.使用Anaconda安装.我按照Pillow安装中的警告解决了这个问题.但是对于tensorflow的docker安装可能没有用.

这是我做的步骤.首先进入tensorflow环境,

source activate tensorflow
Run Code Online (Sandbox Code Playgroud)

然后卸载PIL并安装Pillow

conda uninstall PIL
conda install Pillow
Run Code Online (Sandbox Code Playgroud)

然后在提供的代码中,替换

from IPython.display import display, Image
Run Code Online (Sandbox Code Playgroud)

通过

from IPython.display import display
from PIL import Image
Run Code Online (Sandbox Code Playgroud)

就这样.重新运行代码,它没有PIL错误.

  • 注意:您可能需要重新启动spyder才能使更改生效.(感谢SanjeevKumar指出这一点!) (4认同)

A. *_*tia 2

我通过卸载 Jupyter 并正确重新安装解决了这个问题。该问题与笔记本内核有关。我的终端和笔记本没有相同的内核。为了检查它,我在我的 virtualenv 中做了:

jupyter-kernelspec list

然后转到内核目录列表并打开 json 文件(类似于/Library/Jupyter/kernels/virtualenv/kernel.json

并检查 Python 链接是否与 的输出中的相同 which python

如果没有,请为您的 virtualenv 创建另一个内核。