Подтвердить что ты не робот

Установка библиотеки изображений Python (PIL) на Snow Leopard с обновленным Python 2.6.2

У меня есть новая установка (начатая с протертого диска) Snow Leopard с инструментами разработчика, установленными во время установки Snow Leopard.

Затем я установил Python 2.6.2, заменив python по умолчанию Snow Leopard 2.6.1. Я попытался установить PIL:

  • easy_install
  • pip
  • загрузить исходный код и запустить python setup.py build вручную.

Все дают ту же ошибку (ссылка на pip log: http://drop.io/gi2bgw6). Я видел, что другие успели установить PIL с использованием python 2.6.1 Snow Leopard по умолчанию, поэтому я не уверен, почему у меня так много проблем с его работой с 2.6.2.

4b9b3361

Ответ 1

Питон python.org был построен с более ранним gcc. Попробуйте использовать gcc-4.0 вместо SL по умолчанию 4.2:

export CC=/usr/bin/gcc-4.0

См. аналогичную проблему здесь.

Это преодолевает проблему stdarg. Затем вы можете столкнуться с более поздними проблемами сборки с различными зависимыми библиотеками.

BTW, gcc-4.0 и gcc-4.2 включены вместе с Snow Leopard Xcode 3, поэтому никаких дополнительных настроек не требуется.

ОБНОВЛЕНО 2011-05: Обратите внимание, что новый Xcode 4, выпущенный для экспериментального использования с 10.6 и ожидаемый стандартным с 10.7, больше не включает поддержку PPC, поэтому, если вы установите Xcode 4, это предложение не будет работать. Параметры включают использование более новых 64-разрядных/32-битных установщиков Python 2.7.x с python.org или установку более новых Python 2.6 и PIL и различных сторонних библиотек с использованием MacPorts, Homebrew или Fink.

Ответ 2

Проблема, с которой я столкнулся, заключалась в том, что PIL собирался против архитектуры PowerPC (-arch ppc).

Сделайте это до установки/сборки/компиляции:

export ARCHFLAGS="-arch i386"

(Предполагая, что вы на i386)

Ответ 3

Измененный ответ

Вот шаги, которые я предпринял для успешной установки 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 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 Installer Disk Image из 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, но он не был интегрирован в образ Disk Installer Mac.

Лучшее решение, которое не включает MacPorts или Fink, вероятно, заключалось бы в компиляции и установке Python из ветки выпуска 2.6 из Mercurial Python Repository или Репозиторий Subversion Python. Согласно Сообщение 92315 Проблема 6802, Рональд Уссорен зафиксировал это в Редакция r74686.

Я видел подобные ошибки, используя Python 2.6.2, установленный с образа Mac Disk, пытаясь затем установить Fabric в virtualenv, поэтому планирую скомпилировать и установить из ветки поддержки выпуска 2.6. Если вы хотите, я буду обновляться, когда будет успешным.

Ответ 4

10.6 Snow Leopard устанавливает PIL без хлопот и без сохранения MacPorts:)

Шаг 1: Установите MacPorts
Шаг 2: установка sudo port py26-pil
Шаг 3: mv/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/*/Library/Python/2.6/site-packages/
Шаг 4: Удаление MacPorts

Лучшее из обоих миров?

Ответ 5

Следующие шаги работали для меня:

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

Ответ 6

Мне кажется, что "Нет такого файла" является соединением с stdarg.h, это самая интересная ошибка. Кажется, что файл заголовка отсутствует. Я не знаю, как убедиться, что он установлен на OS X, так что это всего лишь половина ответа, извините, но, возможно, это подталкивает вас в правильном направлении.

Ответ 7

Может быть, вы должны попробовать предварительно создать универсальные двоичные файлы с сайта pythonmac

http://pythonmac.org/packages/py25-fat/index.html

Это для python2.5 с включенным python2.5 (поэтому может или не может быть вам полезен), я использовал его, так как у меня была проблема с использованием self build PIL с py2app.

Ответ 8

Я нашел более простой метод. sudo port установить python26 sudo port install python_select

Затем используйте python_select для установки python26 по умолчанию.

Затем просто установите PIL как обычно.

Ответ 10

У вас есть XCode (появляется на диске Snow Leopard)? Есть некоторые ключевые компоненты (в первую очередь GCC), которые необходимо установить, который XCode обрабатывает для вас.

Ответ 11

Решено в 2 этапа:

Шаг 1: Удаленный и установленный Xcode, предлагаемый здесь: http://binarylionstudios.com/blog/2011/01/30/error-stdarg.h-no-such-file-or-directory/

чтобы удалить Xcode, выполните следующие действия: Как полностью удалить Xcode 4

sudo/Developer/Library/uninstall-devtools --mode = all

используйте установку Xcode.app после перезагрузки mac

Шаг 2: после того, как xcode был переустановлен, установка завершилась неудачно

невозможно выполнить gcc-4.2: нет такого файла или каталога PIL

чтобы решить, что я следил за этим сообщением: http://aravir-rose.blogspot.com/2011/12/installing-python-27s-imaging-library.html

Удачи!

Ответ 12

В OS X Lion с текущим XCode и gcc-4.0 я могу обойти отсутствующую ошибку stdard.h, установив следующие переменные среды:

export CC = "/usr/bin/llvm-gcc-4.2"

Я не могу сказать, что понимаю, почему это работает.

Кстати, это работает и для вилки PILow PIL.