在Mac Snow Leopard上安装PyCurl时遇到问题
我的应用需要使用PyCurl,所以我尝试在我的Mac上安装它,但遇到了很多问题和错误。
首先,我得说我Mac上运行的Python是32位的,因为我需要使用WxPython,而WxPython需要32位的Python。
为此,我使用了:
defaults write com.apple.versioner.python Prefer-32-Bit -bool yes
安装PyCurl时,我使用了:
sudo env ARCHFLAGS="-arch x86_64" easy_install setuptools pycurl
然后终端返回了:
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
所以我以为pycurl已经正确安装并且可以正常工作,但当我启动我的应用时,Python给我返回了一个错误:
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
我真的不知道该怎么解决这个错误,所以我非常需要你们的帮助!
2 个回答
1
你在编译PyCurl的时候给编译器传递了以下参数:
ARCHFLAGS="-arch x86_64"
看起来你是用64位模式编译了PyCurl,但你使用的是32位的Python。你试过用 ARCHFLAGS="-arch i386"
吗?
2
我在用pip和easy_install安装时遇到了同样的问题。我通过下载pycurl的源代码并为Snow Leopard编译成功安装并运行。在pycurl的源代码目录里,在你按照install.txt里的说明运行“python setup.py install”之前,你需要先运行这个命令:
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
基本上,这个命令的编译选项和之前的差不多,除了-arch PPC
这个选项,它在Snow Leopard上会导致安装失败。
一旦你运行了上面的命令,就可以接着运行:
python setup.py install
这样一来,应该就都能正常工作了。