无法在Mac OS X 10.9之后安装PIL

132

我刚刚将我的Mac OS更新到了10.9,发现一些(全部?)Python模块不见了,特别是 Image 模块。

我尝试执行 sudo pip install pil,但是我得到了这个错误:

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/tk.h:78:11: fatal error: 'X11/Xlib.h' file not found

#      include <X11/Xlib.h>

               ^

1 error generated.

error: command 'cc' failed with exit status 1

我的Xcode是最新的,但我不知道问题出在哪里。PIL还没有适配到10.9版本,这可能是原因吗?


不是答案,但你尝试过Pillow吗?https://pypi.python.org/pypi/Pillow/2.2.1 - 它是一个非常好的PIL支持库。 - James Addison
4
Pillow 2.2.1 同样受到影响。 - Adam J. Forster
你需要执行 pip install pillow - kilojoules
在macOS 10.10.5 Yosemite上,pip install Pillow==5.0.0可以正常工作,并安装了.../site-packages/PIL。 (为什么是5.0.0?请参见问题。) - denis
28个回答

211

以下方法对我有效:

ln -s  /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/Tk.framework/Versions/8.5/Headers/X11 /usr/local/include/X11
sudo pip install pil

更新:

但是下面有更正确的解决方案,由威尔提供。

打开你的终端并执行: xcode-select --install


2
你的回答有一个打字错误,应该是 MacOS10.9.sdk 而不是 MacOS0.9.sdk - Bryan Veloso
3
如果你想要一个支持zlib/png/zip的PIL/Pillow,你还需要执行以下操作:ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/zlib.h /usr/local/include/ - gromgull
26
建议的命令会从苹果弹出错误对话框。首先它会询问我是否想要获取XCode(我已经有了),或者选择“安装”。我选择安装,然后弹出一个最终用户许可协议,我接受后,又弹出一个错误对话框,“无法安装软件,因为目前不可从软件更新服务器获得。” - Matt Feifarek
7
我遇到了一个错误 下载/解析PIL 找不到任何满足需求的下载文件 一些外部托管的文件被忽略了(使用--allow-external pil允许) 清理中... 未找到任何分发版本的PIL 将失败的调试日志存储在/Users/Usermania/.pip/pip.log中 - Leonid
1
ln: /usr/local/include/X11: 没有那个文件或目录 我没有 /usr/local/include/X11 目录? - pigletfly
显示剩余9条评论

102

打开终端并执行:

xcode-select --install


3
问题不是关于安装Xcode,而是关于PIL…此外,我已经解释过我已经安装并更新了Xcode。 - Vincent Audebert
5
这也解决了问题(它安装了不随 Xcode 默认安装的命令行工具)。 - Rob Osborne
1
这就是我需要做的,不需要那些符号链接的东西。 - joerick
1
@VincentShowcaseWorkshop Xcode默认不安装命令行工具。尽管我已经在Mac OS 10.9.2上安装并更新了Xcode,但为了解决与OP相同的问题,我不得不手动安装命令行工具。 - Tony Adams
这解决了Mac版本10.11.2(15C50)的问题。 - webtweakers

34
sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/System/Library/Frameworks/Tk.framework/Versions/8.5/Headers/X11/ /usr/local/include/X11

对我有帮助! OS X 10.9

pip install pillow

但是!在执行 pip install 命令之后...

*** ZLIB (PNG/ZIP) support not available

最终我通过运行以下命令来修复它:

xcode-select --install

然后重新安装pillow

pip install pillow

PIL SETUP SUMMARY
    --------------------------------------------------------------------
    version      Pillow 2.2.1
    platform     darwin 2.7.5 (default, Aug 25 2013, 00:04:04)
                 [GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)]
    --------------------------------------------------------------------
    --- TKINTER support available
    --- JPEG support available
    --- ZLIB (PNG/ZIP) support available
    --- TIFF G3/G4 (experimental) support available
    --- FREETYPE2 support available
    --- LITTLECMS support available
    --- WEBP support available
    --- WEBPMUX support available
    --------------------------------------------------------------------

昨天我升级到了Mavericks,今天刚开始一个项目,你刚刚帮我省下了好几个小时的烦恼,谢谢! - javiercf
我必须执行以下操作 $> ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install pillow - Sudhir
1
感谢!对于10.10版本,请使用以下命令:sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/System/Library/Frameworks/Tk.framework/Versions/8.5/Headers/X11 /usr/local/include/X11 - rozochkin

14

适用于我(OS X Yosemite 10.10.2 - Python 2.7.9):

xcode-select --install
sudo pip install pillow

尝试以下方法来检查它:

from PIL import Image
image = Image.open("file.jpg")
image.show()

11

这是我所做的,一些步骤可能不仅适用于PIL,但我需要libpng和其他依赖:

1)运行xcode安装程序,可以使用此命令或从应用商店下载更新:

xcode-select --install

1b) 在Mountain Lion操作系统中,Command Line Tools是xcode下载页面上的一个选项,但现在您需要使用您的Apple ID进行注册,然后从https://developer.apple.com/downloads/下载。

寻找适用于Xcode的命令行工具(OS X Mavericks)

2) 安装所有Python所需组件(使用brew),我相信port也可以使用:

brew install readline sqlite gdbm
brew install python --universal --framework 
brew install libpng jpeg freetype

如有必要,请取消关联/重新关联,例如升级时。

3)安装Pip和所需模块:

easy_install pip 
sudo pip install setuptools --no-use-wheel --upgrade

4) 最终,这个代码可以正常运行且没有错误:

sudo pip install Pillow

更新 11/04/14: PIL代码库不再接收更新或支持,因此应使用Pillow。 以下内容已经过时,请改用Pillow。

sudo pip install pil --allow-external pil --allow-unverified pil

更新(旧版):安装Pillow(PIL的分支)时同样适用,并且应该提到它在大多数情况下迅速成为了PIL的替代品。在第4步中,不要安装pip,而是运行以下命令:

pip install Pillow

sudo pip install Pillow
希望这能对某人有所帮助!

Hope this helps someone!


第四步可能会以 _imagingft.c:73:10: fatal error: 'freetype/fterrors.h' file not found 结束。但是可以按照 https://dev59.com/vGIj5IYBdhLWcg3wYUKR 解决。 - Bugs Bunny
你正在安装PIL还是Pillow?PIL已经过时了,我会更新它。 - radtek
无论是PIL还是Pillow,对于一些人来说解决符号链接freetype/freetype2问题仍然可能有用。但还是谢谢! - Bugs Bunny
是的,我在第二步中添加了一些内容,用于升级时的取消链接/链接。如果有遗漏的地方,您可以进行编辑,我会接受的。 - radtek
1
sudo pip install pil --allow-external pil --allow-unverified pil在2015年帮助了我。 - fun_vit

9

1
我绝对更喜欢这种方法。我讨厌在系统包中进行自定义符号链接...你永远不知道下一次更新会出现什么问题... - tatlar
那个URL看起来现在是错误的。 - Matt Feifarek
@MattFeifarek,今天那个URL对我有效。我必须使用开发人员帐户登录,但它随后将我带到了相关的命令行工具下载页面。 - Tony Adams

8
没有一个对我起作用。我一直在收到以下信息:
clang: error: unknown argument: '-mno-fused-madd' [-Wunused-command-line-argument-hard-error-in-future]
clang: note: this will be a hard error (cannot be downgraded to a warning) in the future
error: command 'cc' failed with exit status 1

所以我找到了一个解决方法:

sudo export CFLAGS=-Qunused-arguments
sudo export CPPFLAGS=-Qunused-arguments
sudo pip install PIL --allow-external PIL --allow-unverified PIL

这样我就能安装了。

这是解决我的问题的方法。如果您正在运行虚拟环境,则不需要使用sudo命令。 - Eric
谢谢!这个在运行Python虚拟环境下有效。我当前没有安装Xcode,因此这节省了我的下载时间。 - Jamie Counsell
这对于10.8中的旧xcode非常有效,它在Mavericks上工作了吗? - radtek

6
我遇到了类似的问题:安装pillow时出现错误:clang: error: unknown argument: '-mno-fused-madd' [-Wunused-command-line-argument-hard-error-in-future],安装命令行工具时出现错误:Can't install the software because it is not currently available from the Software Update server.。即使手动安装了命令行工具,PIL编译仍然失败。
发生这种情况是因为在最新版本的Xcode下,clang不会警告未知的编译器标志,而是使用强制错误停止编译。
为了解决这个问题,在尝试编译(安装pil)之前,在终端中运行export ARCHFLAGS="-Wno-error=unused-command-line-argument-hard-error-in-future"

5
只需运行以下命令:
pip install pil --allow-external pil --allow-unverified pil
这将安装PIL库。

3

以下是我在 Mac OS 10.9.1 上的步骤:

1. sudo su
2. easy_install pip
3. xcode-select --install
4. pip install --no-index -f http://dist.plone.org/thirdparty/ -U PIL

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