Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Problem trying to install PyCurl on Mac Snow Leopard

My app needs to use PyCurl, so I tried to install it on my Mac but I found a lot of problems and errors.

Requirement: First of all I have to say that the version of Python working on my Mac is 32 bit based, because I need to use WxPython, that needs 32 bit Python. For doing this I used:

defaults write com.apple.versioner.python Prefer-32-Bit -bool yes

To install PyCurl I used:

sudo env ARCHFLAGS="-arch x86_64" easy_install setuptools pycurl

And the terminal returned:

Best match: setuptools 0.6c11
Processing setuptools-0.6c11-py2.6.egg
setuptools 0.6c11 is already the active version in easy-install.pth
Installing easy_install script to /usr/local/bin
Installing easy_install-2.6 script to /usr/local/bin

Using /Library/Python/2.6/site-packages/setuptools-0.6c11-py2.6.egg
Processing dependencies for setuptools
Finished processing dependencies for setuptools
Searching for pycurl
Best match: pycurl 7.16.2.1
Processing pycurl-7.16.2.1-py2.6-macosx-10.6-universal.egg
pycurl 7.16.2.1 is already the active version in easy-install.pth

Using /Library/Python/2.6/site-packages/pycurl-7.16.2.1-py2.6-macosx-10.6-universal.egg
Processing dependencies for pycurl
Finished processing dependencies for pycurl

So I thought that pycurl was correctly installed and working, but when I started my app, python return me an error:

python /Users/lorenzodenobili/Desktop/Python/AGGIORNATORE_PY/Dropbox/wxPython/test.py  
Traceback (most recent call last):  
  File  "/Users/lorenzodenobili/Desktop/Python/AGGIORNATORE_PY/Dropbox/wxPython/test.py", line 20, in <module>  
    import pycurl  
  File "build/bdist.macosx-10.6-universal/egg/pycurl.py", line 7, in <module>  
  File "build/bdist.macosx-10.6-universal/egg/pycurl.py", line 6, in __bootstrap__  
ImportError: dlopen(/Users/lorenzodenobili/.python-eggs/pycurl-7.16.2.1-py2.6-macosx-10.6-universal.egg-tmp/pycurl.so,  2): no suitable image found.  Did find:  
    /Users/lorenzodenobili/.python-eggs/pycurl-7.16.2.1-py2.6-macosx-10.6-universal.egg-tmp/pycurl.so: mach-o, but wrong architecture  

I really don't have any idea on how to solve this error, so I really need your help!

like image 203
elledienne Avatar asked May 06 '10 20:05

elledienne


2 Answers

I ran into the same issue when trying to install from pip and easy_install. I got it installed and working by downloading the pycurl source and compiling for Snow Leopard. In the pycurl source directory, before you run "python setup.py install" as the install.txt says, you need to run this:

gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch i386 -arch x86_64 -pipe -DHAVE_CURL_SSL=1 -I/System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6 -c src/pycurl.c -o build/temp.macosx-10.6-universal-2.6/src/pycurl.o

Basically, it's the same compilation flags EXCEPT for -arch PPC, which was causing it to fail on Snow Leopard.

Once you run the command above, then you can run:

python setup.py install

And it should all be working.

like image 182
twampss Avatar answered Nov 04 '22 15:11

twampss


You passed the following flags to the compiler when compiling PyCurl:

ARCHFLAGS="-arch x86_64"

It seems that you have compiled PyCurl in 64-bit mode, while you use the 32-bit Python. Have you tried it with ARCHFLAGS="-arch i386"?

like image 1
Tamás Avatar answered Nov 04 '22 15:11

Tamás