I have just completed the xcode install, mac osx lion. Upon completion I attempted to install PIL in a virtual enviroment using pip, easy_install and home brew. All three are erring out. pip install give the following error:
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
I am not really sure where to go fr开发者_运维问答om here.
Thanks, CG
Xcode 4.1 on OS X Lion 10.7 no longer includes gcc-4.0
as it did in earlier versions of OS X. When you install a Python package like PIL that includes a C extension module, Python's Distutils will attempt to use the same version of the C compiler that that Python itself was build with. It sounds like the version of Python that was used to create your virtualenv
is an older 32-bit-only Python built with gcc-4.0
. You can tell for sure by starting the python
in your virtualenv
. If it says gcc-4.0
, you will need to re-create the virtualenv, using a newer base Python, either one of the Apple-supplied Pythons in Lion or installing a newer python using a python.org installer or a brew recipe. Then install Distribute
and pip
and virtualenv
for that Python, create a new virutalenv and then install PIL in it.
After spending hours on the same problem this is what it worked for me:
Download the PIL source code and cd into it.
Check which version of gcc
do you have by:
gcc
i686-apple-darwin10-gcc-4.2.1: no input files
Then I force to apply this version by:
export CC=gcc-4.2
And select the correct architecture (in my case 32bit):
export ARCHFLAGS="-arch i386"
For 64 use export ARCHFLAGS="-arch x86_64"
Then build and install:
python setup.py build
python setup.py install
Can you find the gcc-4.0
binary on your system? You might need to add the directory it's in to your PATH
environment variable.
If it helps any, I solved this pesky issue with sym links, and I think it will work for you. I wrote this with my version of gcc in mind, which is 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
There ya go!
An Idea would be to point gcc-4.0 to the default gcc flag:
sudo ln -s /usr/bin/gcc /usr/bin/gcc-4.0
精彩评论