Mac osx lion, virtualenv, pil install - ошибка gcc

Я только что завершил установку xcode, mac osx lion. По завершении я попытался установить PIL в виртуальной среде, используя pip, easy_install и home brew. Все трое ошибаются. pip установите следующую ошибку:

pip `

unable to execute gcc-4.0: No such file or directory

error: command 'gcc-4.0' failed with exit status 1

`

easy_install unable to execute gcc-4.0: No such file or directory error: Setup script exited with error: command 'gcc-4.0' failed with exit status 1

home brew Error: Failed executing: python setup.py build_ext

Я не уверен, куда идти отсюда.

Спасибо, CG

Ответ 1

Xcode 4.1 в OS X Lion 10.7 больше не включает gcc-4.0, как это было в более ранних версиях OS X. Когда вы устанавливаете пакет Python, такой как PIL, который включает модуль расширения C, Python Distutils будет пытаться использовать ту же версию компилятора C, с которым был построен сам Python. Похоже, что версия Python, которая использовалась для создания вашего virtualenv, представляет собой более старый 32-битный Python, построенный с помощью gcc-4.0. Вы можете точно сказать, запустив python в virtualenv. Если он говорит gcc-4.0, вам нужно будет заново создать виртуальный файл, используя новый базовый Python, либо один из поставляемых Apple Pythons в Lion, либо установку нового питона с помощью установщика python.org или рецепта brew, Затем установите Distribute и pip и virtualenv для этого Python, создайте новый virutalenv и затем установите PIL в него.

Ответ 2

Проведя часы по одной и той же проблеме, это то, что сработало для меня:

Загрузите исходный код PIL и cd в него. Проверьте, какая версия gcc у вас есть:

gcc
i686-apple-darwin10-gcc-4.2.1: no input files

Затем я принудительно применяю эту версию:

export CC=gcc-4.2

И выберите правильную архитектуру (в моем случае 32 бит):

export ARCHFLAGS="-arch i386"

Для использования 64 экспорта ARCHFLAGS="-arch x86_64"

Затем создайте и установите:

python setup.py build
python setup.py install

Ответ 3

Вы можете найти двоичный файл gcc-4.0 в вашей системе? Возможно, вам нужно будет добавить каталог в переменную среды PATH.

Ответ 4

Если это поможет любому, я решил эту надоедливую проблему с символическими ссылками, и я думаю, что это сработает для вас. Я написал это с моей версией gcc, которая равна 4.2:

cd /usr/bin
rm cc gcc c++ g++
ln -s gcc-4.2 cc
ln -s gcc-4.2 gcc
ln -s c++-4.2 c++
ln -s g++-4.2 g++
ln -s gcc-4.2 gcc-4.0

Там я иду!

Ответ 5

Идея будет указывать gcc-4.0 на флаг gcc по умолчанию:

sudo ln -s /usr/bin/gcc /usr/bin/gcc-4.0