Модифицированный ответ
Вот шаги, которые я предпринял для успешной установки PIL в Mac OS X 10.6 (без использования MacPorts или Fink).
Установить readline
cd ~/src
curl -O ftp://ftp.cwru.edu/pub/bash/readline-6.0.tar.gz
tar -xvzf readline-6.0.tar.gz
cd readline-6.0
./configure
make
sudo make install
Установить gbdm
cd ~/src
curl -O ftp://mirror.anl.gov/pub/gnu/gdbm/gdbm-1.8.3.tar.gz
tar -xvzf gbdm-1.8.3.tar.gz
cd gdbm-1.8.3
# Need to modify Makefile.in
perl -pi -e 's/BINOWN = bin/BINOWN = root/' Makefile.in
perl -pi -e 's/BINGRP = bin/BINGRP = wheel/' Makefile.in
./configure
make
sudo make install
Скомпилируйте последнюю версию Python 2.6.2+ из Mercurial Repo
cd ~/development
hg clone http://code.python.org/hg/branches/release2.6-maint/ python-release2.6-maint.hg
cd python-release2.6-main.hg
./configure --enable-framework MACOSX_DEPLOYMENT_TARGET=10.6
make
sudo make frameworkinstall
Примечание : я получил следующие ошибки после выполнения make
. Тем не менее, я продолжил, так как не беспокоился об отсутствии этих модулей и смог успешно установить PIL.
Failed to find the necessary bits to build these modules:
_bsddb dl imageop
linuxaudiodev ossaudiodev spwd
sunaudiodev
To find the necessary bits, look in setup.py in detect_modules() for the module's name.
Failed to build these modules:
Nav
running build_scripts
Обновление .bash_profile для нового Python 2.6.2+ и для virtualenvwrapper
# Set PATH for MacPython 2.6 if Python2.6 is installed
if [ -x /Library/Frameworks/Python.framework/Versions/2.6/bin/python2.6 ]; then
PATH="/Library/Frameworks/Python.framework/Versions/2.6/bin:${PATH}"
export PATH
fi
# MDR April 23, 2009: Added for virtualenvwrapper
if [ -x /Library/Frameworks/Python.framework/Versions/2.6/bin/virtualenvwrapper_bashrc ]; then
export WORKON_HOME=$HOME/.virtualenvs
export PIP_VIRTUALENV_BASE=$WORKON_HOME
source /Library/Frameworks/Python.framework/Versions/2.6/bin/virtualenvwrapper_bashrc
fi
Установите easy_install, pip, virtualenv и virtualenvwrapper для Python 2.6.2 +
curl -O http://peak.telecommunity.com/dist/ez_setup.py
sudo python ez_setup.py
sudo easy_install pip
sudo easy_install virtualenv
sudo easy_install virtualenvwrapper
Создайте virtualenv, а затем используйте pip для установки PIL
mkvirtualenv pil-test
cdvirtualenv
easy_install pip
pip install http://effbot.org/downloads/Imaging-1.1.6.tar.gz
Примечание : мне не удалось установить PIL с помощью pip install pil
, поэтому я установил его с URL-адреса, как показано выше.
Оригинальный ответ
Из того, что я вижу в вашем файле pip-log.txt , видно, что вы установили Python 2.6.2 с помощью образа установщика Mac из Python.org, выпущенного в апреле 16, 2009. Вы можете это подтвердить?
Из журнала пипсов gcc завершился неудачно с состоянием выхода 1. Команда gcc
из вашего журнала пипов выглядит следующим образом:
gcc -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -O3 -DHAVE_LIBJPEG -DHAVE_LIBZ -I/System/Library/Frameworks/Tcl.framework/Headers -I/System/Library/Frameworks/Tk.framework/Headers -IlibImaging -I/Library/Frameworks/Python.framework/Versions/2.6/include -I/usr/local/include -I/usr/include -I/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6 -c _imaging.c -o build/temp.macosx-10.3-fat-2.6/_imaging.o
Эта проблема связана с тем, что Snow Leopard изменил значение по умолчанию для флага -arch с i386
на x86-64
в соответствии с Рональдом Уссореном в Сообщение 92083 из Python Issue 6802 . Доступен патч Python 2.6.2, но он не был интегрирован в образ диска установщика Mac.
Наилучшим решением, в котором не используются MacPorts или Fink, вероятно, будет компилирование и установка Python из ветки выпуска 2.6 из Mercurial Python Repository или Subversion Python Repository, Согласно сообщению 92315 от Issue 6802 , Рональд Уссорен исправил это в Revision r74686 .
Я видел похожие ошибки при использовании Python 2.6.2, установленного с образа диска Mac, при попытке установить Fabric в virtualenv, поэтому я планирую скомпилировать и установить его из ветки обслуживания релиза 2.6. Если вы хотите, я буду обновлять, когда успешно.