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