Установка PIL на Snow Leopard - НИЧЕГО НЕ РАБОТАЕТ - PullRequest
3 голосов
/ 12 июля 2010

Я пытаюсь установить PIL на Snow Leopard, используя Python 2.6.1, GCC 4.2.1, PIL 1.1.7, и пробовал как с libjpeg6b, так и с libjpeg7 - ничего не работает. Я удалил все следы libjpeg / pil / zlib из fink, попробовал различные варианты компилятора и т. Д. И использовал http://jetfar.com/libjpeg-and-python-imaging-pil-on-snow-leopard/ и http: // www.brambraakman.com/blog/comments/install_pil_in_snow_leopard_jpeg_resync_to_restart_error/ (не ссылка, потому что StOv позволяет мне публиковать только одну ...)

4 бита потенциально полезной информации:

OTOOL не показывает libjpeg как зависимость

otool -L /Library/Python/2.6/site-packages/PIL/_imaging.so
/Library/Python/2.6/site-packages/PIL/_imaging.so:
 /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.0)

Я получаю эти странные сообщения компилятора

i686-apple-darwin10-gcc-4.2.1: -framework: linker input file unused because linking not done
i686-apple-darwin10-gcc-4.2.1: Tcl: linker input file unused because linking not done
i686-apple-darwin10-gcc-4.2.1: -framework: linker input file unused because linking not done
i686-apple-darwin10-gcc-4.2.1: Tk: linker input file unused because linking not done
gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch i386 -arch ppc -arch x86_64 -pipe -I/System/Library/Frameworks/Tcl.framework/Headers -I/System/Library/Frameworks/Tk.framework/Headers -IlibImaging -I/sw/include/freetype2 -I/sw/include -I/opt/local/include -I/System/Library/Frameworks/Python.framework/Versions/2.6/include -I/usr/local/include -I/usr/include -I/System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6 -c Tk/tkImaging.c -o build/temp.macosx-10.6-universal-2.6/Tk/tkImaging.o -framework Tcl -framework Tk
In file included from /System/Library/Frameworks/Tk.framework/Headers/tk.h:78,
                 from Tk/tkImaging.c:51:

Сбой selftest.py из-за _imagingmath (после того, как я использовал вторую ссылку, указанную выше, до того, как она тоже перестала работать из-за _imaging)

Themistocles:Imaging-1.1.7 me$ python selftest.py 
Traceback (most recent call last):
  File "selftest.py", line 11, in <module>
    from PIL import ImageMath
  File "./PIL/ImageMath.py", line 19, in <module>
    import _imagingmath
ImportError: No module named _imagingmath

Произошел сбой всего, кроме selftest.py, из-за _imaging

>>> import _imaging
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: dlopen(/Library/Python/2.6/site-packages/PIL/_imaging.so, 2): Symbol not found: _jpeg_resync_to_restart
  Referenced from: /Library/Python/2.6/site-packages/PIL/_imaging.so
  Expected in: flat namespace
 in /Library/Python/2.6/site-packages/PIL/_imaging.so

Пожалуйста, пожалуйста, помогите! Это становится смешным. Я бы даже был рад возможности компилировать поддержку PIL sans jpeg на этом этапе!

Ответы [ 3 ]

5 голосов
/ 27 июля 2010

Я недавно написал статью о том, как заставить PIL, django, libjpeg работать хорошо вместе со Snow Leopard

http://appelfreelance.com/2010/06/libjpeg-pil-snow-leopard-python2-6-_jpeg_resync_to_restart/

Я скопирую это сюда и для вас.

Если у вас этого нет, сначала скачайте его.

http://www.ijg.org/files/jpegsrc.v7.tar.gz

войдите в среду оболочки и распакуйте, выполнив следующую команду

tar -zxvf jpegsrc.v7.tar.gz
cd jpeg-7

затем запустите

sudo make clean
sudo CC = "gcc -arch i386" "./ configure --enable-shared --enable-static
sudo make
sudo make install

Затем возьмите PIL и распакуйте его

http://effbot.org/downloads/Imaging-1.1.6.tar.gz
tar -zxvf Imaging-1.1.6.tar.gz
CD Imaging-1.1.6

Если у вас уже есть PIL, я бы порекомендовал запустить

sudo rm -Rf build

для очистки любых существующих сборок, это вызвало у меня кучу ошибок и седых волос!

в вашем файле settings.py запустите find JPEG_ROOT

изменить его так, чтобы он выглядел следующим образом

JPEG_ROOT = libinclude («/ usr / local»)

Далее перейти к сборке

sudo python setup.py build

если libjpeg успешно установлен, вы сможете запускать python selftest.py без каких-либо ошибок, связанных с «jpeg»

sudo python setup.py install

если все сработало успешно, вы сможете войти в свой интерпретатор python, выполнив python в командной строке, а также сделать следующее:

импорт PIL
импортировать изображение
импорт _imaging

без ошибок.

Просто для тройной проверки у меня на рабочем столе простой jpeg.

image = Image.open («/ Users / MyName / Desktop / myimage.jpeg»)
image.save ( «/ Users / MyName / Desktop / test.jpeg»)

должно работать без ошибок

1 голос
/ 12 июля 2010

Скачать macport:

http://www.macports.org/install.php

Тогда используйте его для пил:

http://trac.macports.org/browser/trunk/dports/python/py-pil/Portfile

У меня тоже было много проблем с этим, но порт справился.

0 голосов
/ 24 июля 2010

При попытке установить PIL я всегда получал сообщения об ошибках gcc на несколько экранов.В какой-то момент у меня что-то заработало (возможно, через MacPorts), и теперь мое решение - скопировать его в соответствующие пакеты сайта (например, внутри нового virtualenv).

Я только что разместил это здесь: http://blogmaker.com/PIL-1.1.6-for-MacOSX-10.5-Leopard.zip

У меня работает;Я понятия не имею, будет ли это работать для кого-то еще!Не стесняйтесь обращаться ко мне с предложениями.И, дайте мне знать, если есть лучшее место, я должен опубликовать его.PIL - это очень круто и очень хлопотно;было бы неплохо иметь определенное место для поддержки.Есть и другие проблемы, связанные с PIL, которые я так и не решил.

...