在Mac OS X上安装OIL以与Django一起使用

时间:2011-02-22 08:14:51

标签: python django macos python-imaging-library

我对在Mac OS X 10.6上安装PIL(Python Imaging Library)感到非常恼火。有没有人安装它,可以在这里发布食谱?我已经尝试了很多这些网站发布在这个网站上,而且很多都来自谷歌,但总是缺少一些部分而且无法正常使用PIL ......

提前致谢。 Ignas

9 个答案:

答案 0 :(得分:14)

以下步骤对我有用:

$ brew install pip
$ export ARCHFLAGS="-arch i386 -arch x86_64"
$ pip install pil

答案 1 :(得分:12)

编辑:这个答案最近已被投票,我想修改它以反映我现在正在做的事情。

首先,我已经从MacPorts切换到Homebrew以便在Mac OS X上进行包管理。其次,我已经从使用我的包管理器切换到使用pipvirtualenvwrapper来管理我的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.profilesource或打开新的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 virtualenvwrapperor just view the screencast


<强> ORIGINAL:

您还可以使用MacPorts安装PIL。包名称为py-pilHere'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.6homebreweasy_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

MacportsPIL package here

或者从source构建?

更重要的是,PIL README说明了,

* ---------------------------------------------- ----------------------

Mac OS X的附加说明

在Mac OS X上,您通常会安装其他软件,例如 使用“fink”工具的libjpeg或freetype,然后它最终进入 “/ SW”。如果您已在其他地方安装了库,则可能有 在构建之前调整“setup.py”文件。*

这可能是你的问题。祝你好运!

答案 4 :(得分:2)

在新安装的操作系统之后尝试了以下步骤:

  1. 已安装homebrew
  2. brew install libjpeg
  3. brew install pil
  4. easy_install pil
  5. cd /Library/Python/2.6/site-packages
  6. ln -s /usr/local/Cellar/pil/1.1.7/lib/python2.6/site-packages/PIL PIL
  7. 之后我能够加载并保存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

编译并安装包。