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吗?


没有答案,但是您尝试过枕头吗?pypi.python.org/pypi/Pillow/2.2.1-PIL非常受支持。
James Addison

4
@JamesAddison枕头2.2.1的作用类似。
亚当·福斯特

您想要pip install pillow
千焦耳

在macOS 10.10.5 Yosemite上pip install Pillow==5.0.0运行,安装.../site-packages/PIL。(为什么是5.0.0?请参见问题)。
denis

Answers:


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
布赖恩·韦洛索

3
如果您还想要具有zlib / png / zip支持的PIL /枕头,则还需要执行以下操作:ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/zlib.h /usr/local/include/
gromgull 2013年

26
建议的命令将弹出Apple错误对话框。首先,它询问我是否要获取XCode(我拥有)或“安装”。我选择安装。我接受,它将弹出一个EULA,然后出现一个错误对话框:“无法安装软件,因为当前无法从软件更新服务器获得该软件。”
马特·费法瑞克

7
我遇到了一个错误 Downloading/unpacking pil Could not find any downloads that satisfy the requirement pil Some externally hosted files were ignored (use --allow-external pil to allow). Cleaning up... No distributions at all found for pil Storing debug log for failure in /Users/Usermania/.pip/pip.log
Leonid

1
ln:/ usr / local / include / X11:没有这样的文件或目录我没有/ usr / local / include / X11目录吗?
Pigletfly 2014年

102

打开终端并执行:

xcode-select --install


2
问题不是安装Xcode,而是安装PIL...。此外,我解释说我已经安装了Xcode,并且是最新的。
Vincent Audebert

5
这也解决了问题(它安装了默认情况下未使用Xcode安装的命令行工具)。
罗伯·奥斯本

1
这就是我需要做的,没有那些符号链接的东西。
joerick

@VincentShowcaseWorkshop Xcode默认情况下不安装命令行工具。我必须这样做才能克服与OP相同的问题,即使我绝对可以在Mac OS 10.9.2上安装Xcode并保持最新状态。
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

对我有帮助!操作系统x 10.9

pip install pillow

但!点安装后...

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

最后我通过运行来修复它:

xcode-select --install

然后重新安装枕头

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
    --------------------------------------------------------------------

昨天更新为特立独行者,直到今天我才开始一个项目,您为我节省了数小时的痛心感谢!
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 install,使用此命令或从应用商店下载更新:

xcode-select --install

1b)添加命令行工具可选工具,在Mountain Lion中,这是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

2014年11月4日更新:PIL存储区不再收到更新或支持,因此应使用Pillow。现在不建议使用以下内容,因此请坚持使用Pillow。

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

UPDATE(旧):安装Pillow(PIL拨叉)时同样适用,并且在大多数情况下,它很快就可以替代PILlow。而不是在步骤4中安装pip,而是运行以下命令:

sudo pip install Pillow

希望这对某人有帮助!


步骤4)可能以sth like结束_imagingft.c:73:10: fatal error: 'freetype/fterrors.h' file not found。但是可以在stackoverflow.com/questions/20325473/…之后解决。
Bugs Bunny 2014年

您要安装枕头还是枕头?不建议使用PIL,我将对其进行更新。
radtek

没关系 PIL或Pillow,对于某些人来说解决符号链接freetype / freetype2问题可能仍然有用。但是谢谢!
Bugs Bunny 2014年

是的,我在步骤2中添加了一些内容,以便在升级时取消/ link的链接。如果缺少某些内容,您可以进行编辑,我会接受吗?
radtek

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

9

安装命令行工具为我解决了这个问题

您必须分别安装它们,因为它们现在不属于xcode软件包中的一部分:

https://developer.apple.com/downloads/index.action?=command%20line%20tools#


1
我绝对喜欢这种方法。我讨厌与系统软件包进行自定义符号链接...您永远都不知道在下一次更新中将会发生什么...
tatlar

现在,这似乎是错误的网址。
Matt Feifarek

@MattFeifarek这个网址今天对我有用。我必须使用开发人员帐户登录,但是随后我进入了相关的命令行工具下载页面。
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命令。
埃里克

谢谢!这在运行Python虚拟环境时有效。我目前尚未安装Xcode,因此节省了下载时间。
Jamie Counsell 2014年

这对于10.8中的旧xcode很好用,对Mavericks有用吗?
radtek

6

我有一个类似的问题:安装枕头失败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不会警告未知的编译器标志,而是通过硬错误停止编译。

要解决此问题,只需export ARCHFLAGS="-Wno-error=unused-command-line-argument-hard-error-in-future"在终端上运行,然后再尝试进行编译(安装pil)。


5

只需运行

pip install pil --allow-external pil --allow-unverified 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

2

您可以使用Homebrew进行安装 http://brew.sh

brew tap Homebrew/python
brew install pillow

你好,rchapman。当我运行brew安装samueljohn / python / pillow时,它给出了如下警告:pillow-2.5.1 already installed, it's just not linked。在此之前,有15条警告,例如:Could not tap homebrew/python/cpyrit-cuda over samueljohn/python/cpyrit-cuda。任何想法为什么会发生这种情况?或者如何链接枕头?
0xmtn 2014年

2

确保在xcode上安装了命令行工具。然后执行:

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

我能够使用Xcode for Mavericks而不使用命令行工具来安装它。
radtek

2

我遇到以下错误

building 'PIL._imagingft' extension
_imagingft.c:62:10: fatal error: 'freetype/fterrors.h' file not found

#include <freetype/fterrors.h>

         ^

1 error generated.

error: command 'cc' failed with exit status 1

解决方案是将freetype2符号链接到freetype,从而解决了该问题。


2

我不想安装XCode(我不使用它),但我讨厌摆弄Application目录。我从这篇文章的许多答案中脱颖而出,以下两个步骤对我来说适用于10.9.5:

sudo easy_install pip
sudo pip install pillow

我不得不使用easy_install来安装pip确实让我感到奇怪。但是pip不想在重新安装之前为我工作。


1

找到了解决方案...您必须像这样对X11进行符号链接ln -s /opt/X11/include/X11 /usr/local/include/X11,然后sudo pip install pil才能正常工作。


对我不起作用...您在使xcode正常工作之前是否对其进行了更新?您是否多次重启了Mac?这让我感到沮丧。ug。
bonbon.langes 2013年

我之前没有进行xcode更新,即使不确定它是否有帮助,也重新启动了Mac。也许X11的路径对您来说并不相同。尝试其他一些答案。
Vincent Audebert

1

重用@DmitryDemidenko的答案对我有用:

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 -U PIL --allow-external PIL --allow-unverified PIL


0

那就是我所做的:

首先升级到Xcode 5(我正在运行10.9)。然后,在终端中执行以下命令:

$ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk
$ 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/include/

1
两个星期前也给出了类似的答案并被接受。我看不到您的附加价值...
Soravux

好吧,这个答案与被接受的答案有不同的路径。我将此版本添加为已接受答案的注释。命令是sudo 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 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/X11
osa


0

因为公认的答案是正确的答案,xcode-select --install但有些人(包括我)可能会遇到Can't install the software because it is not currently available from the Software Update server 如果您使用的是Beta版软件(因为我现在使用的是优胜美地并且遇到相同的问题),则您需要单独购买CLT,因为它不包含在其中。 XCode(甚至xcode beta)也可以转到developers.apple.com并为您的OS获取CLT工具;)

PS您不需要XQuartz的PIL或Pillow即可工作



0

改为安装枕头

sudo pip install pillow

您仍然需要所有的预配置,就像PIL一样
radtek

@radtek不,您不在Mac 10.9上。在否决我的答案之前,您是否真的尝试过该命令?
Bobo 2014年

我没有拒绝你的答案,我赞成,但是是的,我确实尝试过。我实际上已经做了几次,实际上我不需要步骤1b,但是我需要做其他所有事情。
radtek

0
ln -s /usr/local/include/freetype2 /usr/local/include/freetype
sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install pil


0
sudo pip uninstall pillow
pip install pillow

为我工作。我在优胜美地上运行Python 2.7.9。import PIL现在为我工作。


0

在Mac OSC 10.10 Yosemite上安装PIL(Imaging.1.1.7)。我尝试了这里推荐的许多修复程序,但是每个修复程序都遇到了麻烦。我终于通过编辑setup.py文件来解决了这个问题:

TCL_ROOT =“ / opt / X11 / include”

它在_imagingtk.c的编译中通过了X11的适当包含路径,这对我造成了问题。更改后立即工作。


0

我已从pyenv移至virtualenv,这解决了我的问题。


-4
  1. ln -s / opt / X11 / include / X11 / usr / local / include / X11
  2. 没有sudo的pip install pil
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.