Pip无法安装pillow。

8
尝试使用pip安装pillow时出现以下错误。 我已经尝试重新安装设置工具,但没有效果。 我在安装了Diet Pi的树莓派零上运行。
pip install pillow

Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
    Collecting pillow
      Using cached 
    https://files.pythonhosted.org/packages/3c/7e/443be24431324bd34d2                                                                                                                                                             
    2dd9d11cc845d995bcd3b500676bcf23142756975/Pillow-5.4.1.tar.gz
Installing collected packages: pillow
  Running setup.py install for pillow ... error
    Complete output from command /usr/bin/python -u -c "import setuptools, token                                                                                                                                                             ize;__file__='/tmp/pip-install-Q2fwNi/pillow/setup.py';f=getattr(tokenize, 'open                                                                                                                                                             ', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(co                                                                                                                                                             de, __file__, 'exec'))" install --record /tmp/pip-record-uWuhA1/install-record.t                                                                                                                                                             xt --single-version-externally-managed --compile:
    Single threaded build, not installing mp_compile:1 processes
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-armv6l-2.7
    creating build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/FtexImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/PpmImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImageFont.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/JpegImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/PsdImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/SgiImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/XVThumbImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/Image.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/_binary.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/PyAccess.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImageSequence.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/DdsImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/OleFileIO.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/XpmImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/McIdasImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/IcnsImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImageTransform.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/BmpImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImagePalette.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/IptcImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/TiffImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/GdImageFile.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/_util.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/CurImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/TiffTags.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/FliImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/WebPImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImageGrab.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/WmfImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImageEnhance.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImageShow.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/PdfImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImageOps.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/GbrImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImageTk.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/BlpImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/PcfFontFile.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/WalImageFile.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/Jpeg2KImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImageMorph.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/TgaImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/EpsImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/_tkinter_finder.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/IcoImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImageWin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/GimpGradientFile.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImageDraw.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/features.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/Hdf5StubImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/JpegPresets.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/__init__.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/DcxImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImagePath.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImageDraw2.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImageFilter.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/PcdImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/PSDraw.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/BufrStubImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImageChops.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/FpxImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImageCms.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ExifTags.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/PdfParser.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/FontFile.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/PaletteFile.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImageMath.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImageQt.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/PalmImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/GifImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImtImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/_version.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/MicImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/MspImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ContainerIO.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImageColor.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/GimpPaletteFile.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/PixarImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImageStat.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/GribStubImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/BdfFontFile.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/MpegImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/FitsStubImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/TarIO.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/SpiderImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImageFile.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/SunImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/PcxImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/XbmImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/PngImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImageMode.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/MpoImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    running egg_info
    writing src/Pillow.egg-info/PKG-INFO
    writing top-level names to src/Pillow.egg-info/top_level.txt
    writing dependency_links to src/Pillow.egg-info/dependency_links.txt
    reading manifest file 'src/Pillow.egg-info/SOURCES.txt'
    reading manifest template 'MANIFEST.in'
    warning: no files found matching '*.c'
    warning: no files found matching '*.h'
    warning: no files found matching '*.sh'
    no previously-included directories found matching 'docs/_static'
    warning: no previously-included files found matching '.appveyor.yml'
    warning: no previously-included files found matching '.coveragerc'
    warning: no previously-included files found matching '.codecov.yml'
    warning: no previously-included files found matching '.editorconfig'
    warning: no previously-included files found matching '.landscape.yaml'
    warning: no previously-included files found matching '.readthedocs.yml'
    warning: no previously-included files found matching '.travis'
    warning: no previously-included files found matching '.travis/*'
    warning: no previously-included files found matching 'tox.ini'
    warning: no previously-included files matching '.git*' found anywhere in dis                                                                                                                                                             tribution
    warning: no previously-included files matching '*.pyc' found anywhere in dis                                                                                                                                                             tribution
    warning: no previously-included files matching '*.so' found anywhere in dist                                                                                                                                                             ribution
    writing manifest file 'src/Pillow.egg-info/SOURCES.txt'
    running build_ext


    The headers or library files could not be found for jpeg,
    a required dependency when compiling Pillow from source.

    Please see the install instructions at:
       https://pillow.readthedocs.io/en/latest/installation.html

    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-Q2fwNi/pillow/setup.py", line 812, in <module>
        raise RequiredDependencyException(msg)
    __main__.RequiredDependencyException:

    The headers or library files could not be found for jpeg,
    a required dependency when compiling Pillow from source.

    Please see the install instructions at:
       https://pillow.readthedocs.io/en/latest/installation.html

    Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-xZLepb/pillow/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-1_XTeb/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-install-xZLepb/pillow/

2
就这样了?没有更多的输出了吗? - Martijn Pieters
3个回答

14

试试这个:

python3 -m pip install Pillow

如果它不起作用,请查看这个:

apt-get install python-dev
apt-get install libjpeg-dev
apt-get install libjpeg8-dev
apt-get install libpng3
apt-get install libfreetype6-dev
ln -s /usr/lib/i386-linux-gnu/libfreetype.so /usr/lib
ln -s /usr/lib/i386-linux-gnu/libjpeg.so /usr/lib
ln -s /usr/lib/i386-linux-gnu/libz.so /usr/lib

pip install PIL  --allow-unverified PIL --allow-all-external

请注意,在64位平台上,链接路径需要不同,

/usr/lib/x86_64-linux-gnu/libfreetype.so

为了获得更具体的解决方案,请像下面这样创建链接:

ln -s /usr/lib/`uname -i`-linux-gnu/libfreetype.so /usr/lib/

同样对于Raspbian Stretch(Raspberry Pi),你可以编写:

sudo apt install python3-dev libjpeg8-dev libpng-dev libfreetype6-dev

@Tris 升级 pip 并使用它来进行所有 pip 安装,以避免出现“no such option: --allow-all-external”错误。 - Freeman
1
在最新的Raspian stretch上,改用sudo apt install python3-dev libjpeg8-dev libpng-dev libfreetype6-dev - popcnt
谢谢,它起作用了。为什么应该使用-m命令?你知道为什么默认情况下它不起作用吗? - jasper

3

我也遇到了这个问题。为了解决这个问题,我只需使用 python3 -m pip install --upgrade pip 命令升级pip就可以了。


3
我通过明确删除 requirements.txt 文件中的版本号来解决了这个问题,这样pip就会获取最新的pillow版本,因此如果你有...
pillow==7.0.2

将其更改为...

pillow

然后保存文件并重新运行pip install -r requirements.txt命令即可,应该就可以正常工作了。


哇,它成功了。最初我的 requirements.txt 文件中有 6.2.1 版本。所以当我安装 8.3.1 版本时,出现了错误。正在运行 Pillow 的 setup.py 清理 构建 Pillow 失败 正在安装收集的软件包:Pillow、gunicorn、djangorestframework、django-phone-field、django-oidc-provider、django-imagekit、django-filter、django-extensions、django-cors-headers、django-celery-beat、celery 尝试卸载:Pillow 发现现有的安装:Pillow 8.3.1 正在卸载 Pillow-8.3.1: 成功卸载 Pillow-8.3.1 正在运行 Pillow 的 setup.py 安装... 出现错误 - Devaski
1
通常情况下,如果您没有明确定义版本号,安装程序会默认使用最新版本,这样可以避免很多错误。因此,我建议您只在必要时才显式地使用版本号。但是对于像开源项目这样的协作项目,您需要使用版本号,以避免与其他合作者的依赖项发生冲突。 - NMukama
新版本的PIL可能有一些要求。我尝试了!python3 -m pip install Pillow==6.0.0,它可以工作。 - Mehmet Burak Sayıcı
@NMukama 最新版本在依赖管理方面并不比一个非常老的版本更好。两者同样容易出现问题。 - AlxVallejo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接