我对在Mac OS X 10.6上安装PIL(Python Imaging Library)感到非常恼火。有没有人安装它,可以在这里发布食谱?我已经尝试了很多这些网站发布在这个网站上,而且很多都来自谷歌,但总是缺少一些部分而且无法正常使用PIL ......
提前致谢。 Ignas
答案 0 :(得分:14)
以下步骤对我有用:
$ brew install pip
$ export ARCHFLAGS="-arch i386 -arch x86_64"
$ pip install pil
答案 1 :(得分:12)
编辑:这个答案最近已被投票,我想修改它以反映我现在正在做的事情。
首先,我已经从MacPorts切换到Homebrew以便在Mac OS X上进行包管理。其次,我已经从使用我的包管理器切换到使用pip和virtualenvwrapper来管理我的Python库。
我切换的原因:
首先,只需几个Django项目,就可以很容易地使用MacPorts保持最新状态。使用python_select
拥有多个版本的Python也相当容易。我没有意识到的是,我做了一个非常糟糕的工作,让多个库并排工作。很明显,当我升级我的软件包时,有时我真的不希望项目的Django版本发生变化。在几个Django 1.1项目(现在运行Django 1.3)开始表现出奇怪的行为(由于CSRF中间件更改,Django库中的小差异,管理应用程序资产更改等等而无法提交表单)之后,很明显我应该看一下进入更好的解决方案。
我现在做什么:
在Mac OS X上,我转而使用pip和virtualenvwrapper。首先,我安装了virtualenvwrapper:
pip install virtualenvwrapper
这将抓住virtualenv和virtualenvwrapper。然后,您需要将以下内容添加到.bashrc
或.profile
和source
或打开新的shell。
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh # where Homebrew places it
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages' # optional
第1行设置变量workon
需要查找其文件。第2行指向主shell脚本(此处的路径是Homebrew放置文件的位置,如果您使用另一个包管理器,它可能会有所不同)。第3行是可选的,但我非常喜欢它:它确保“main”site-packages存储库中当前安装的库不会泄漏到新创建的虚拟环境中。我发现这可以让事情变得干净,并且随着事情的升级,可以减少意外事故。
下一步是创建一个新的虚拟环境:
mkvirtualenv testEnvironmentName
在创造环境之后,你将被置于其中。如果保留--no-site-packages
标志,则可以键入pip freeze
以查看您的Python库平板现在是空白的。要逃离虚拟环境,请使用deactivate
命令。要再次进入virtualenv,请使用workon testEnvironmentName
。请注意,您可以在环境名称上使用Tab键完成。另请注意,单独键入workon
将为您提供可用环境列表。从这里你可以pip install
你想要的任何图书馆,包括PIL。
要了解有关virtualenvwrapper的更多信息,请I recommend checking out the documentation。
Here's another great resource which taught me a lot about using virtualenvwrapper(or just view the screencast)
<强> ORIGINAL:强>
您还可以使用MacPorts安装PIL。包名称为py-pil
。 Here's more information on the package。我非常喜欢MacPorts over pip,因为我发现它在保持几个版本的python和几个库的安装方面给了我更多的可配置性。
以下是MacPorts的安装说明:http://www.macports.org/install.php
另请参阅:What is the most compatible way to install python modules on a Mac?
答案 2 :(得分:6)
是的,PIL
10.6.6
,homebrew
和easy_install
也存在easy_install PIL
问题。
最简单的解决方案是pip install PIL
/ /Library/Python/2.6/site-packages/
,导航至PIL-1.1.7-.....egg
,并将PIL
文件符号链接至ln -s PIL-................egg PIL
>>> import PIL
>>> from PIL import Image
# no more problems.
pip install pillow
编辑:这些天,我尝试使用Pillow,一个帮助安装PIL的库。试试{{1}} - 不能伤害!
答案 3 :(得分:5)
如果您可以详细说明您尝试过的内容以及这些尝试生成的错误消息,则可能更容易查明您的问题。以下是您可能尝试过或未尝试过的一些可能的解决方案:
pip install pil
如果您没有pip,请尝试
easy_install pil
由于你在Mac上,你也可以获得HomeBrew(包管理器),然后尝试
brew install pil
或者从source构建?
更重要的是,PIL README说明了,
* ---------------------------------------------- ----------------------
在Mac OS X上,您通常会安装其他软件,例如 使用“fink”工具的libjpeg或freetype,然后它最终进入 “/ SW”。如果您已在其他地方安装了库,则可能有 在构建之前调整“setup.py”文件。*
这可能是你的问题。祝你好运!
答案 4 :(得分:2)
在新安装的操作系统之后尝试了以下步骤:
之后我能够加载并保存jpeg文件......我知道这个问题有很多不同的解决方案,我不是100%我的方式会为其他人工作,但如果你只是尝试它是值得的把头撞到墙上:))
答案 5 :(得分:2)
我正在使用OS X 10.5.8,gcc 4.2.1,python 2.7.5,libjpegv9和Pillow 2.1.0(基于PIL)。
显然我的问题(但这只是猜测)是由libjpeg和python(和Pillow)构建的架构不兼容引起的。
仅使用32位arch从源代码构建python和libjpeg解决了它。我安装了所有其他python库,包括Pillow,只需使用
pip install xxxxx
它工作正常。
首先,我尝试了python.org网站上的dmg和通过macports安装的通用版本。我没有在安装时指定通用,但是macports无论如何都安装了i386和ppc架构。
这导致了我的问题,因为libjpeg默认只编译为i386。
为了检查二进制文件的构建,我做了:
file /usr/bin/python
/ usr / bin / python:具有2个架构的Mach-O通用二进制文件
/ usr / bin / python:Mach-O可执行文件i386
/ usr / bin / python:Mach-O可执行文件ppc
file /usr/local/lib/libjpeg.dylib
/usr/local/lib/libjpeg.dylib:Mach -O动态链接共享库i386
在构建PIL(或Pillow)时,它似乎使用与python“-gcc i386 -gcc ppc”相同的构建选项(这似乎是合乎逻辑的)。
一切顺利,直到它构建了“_imaging”模块。在那里,它显示了一个警告,libjpeg.dylib不是正确的架构,但最后它显示JPEG可用的相同。
答案 6 :(得分:1)
PIL的包装分支试图在许多现代平台上安装和支持,包括OS X:
您应该可以使用pip或easy_install在OS X上安装它(假设您有XCode)。如果您有任何问题,请在此处打开机票:
答案 7 :(得分:0)
嘿看看这个article,在Snow Leopard上为我创造了奇迹。
我还建议使用libjpeg 0.6而不是文章中提到的0.7。
祝你好运。答案 8 :(得分:0)
我在Mac上使用brew和easy_install安装PIL时遇到问题。我的解决方案是从http://www.pythonware.com/products/pil/下载源代码,提取tar球并使用
python setup.py install
编译并安装包。