简体   繁体   English

尝试在Mac Snow Leopard上安装PyCurl时遇到问题

[英]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. 我的应用程序需要使用PyCurl,所以我尝试在我的Mac上安装它,但我发现了很多问题和错误。

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. 要求:首先,我必须说我的Mac上运行的Python版本是基于32位的,因为我需要使用需要32位Python的WxPython。 For doing this I used: 为此,我使用了:

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

To install PyCurl I used: 要安装我使用过的PyCurl:

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: 所以我认为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  

I really don't have any idea on how to solve this error, so I really need your help! 我真的不知道如何解决这个错误,所以我真的需要你的帮助!

I ran into the same issue when trying to install from pip and easy_install. 尝试从pip和easy_install安装时遇到了同样的问题。 I got it installed and working by downloading the pycurl source and compiling for Snow Leopard. 我通过下载pycurl源并为Snow Leopard编译来安装和工作。 In the pycurl source directory, before you run "python setup.py install" as the install.txt says, you need to run this: 在pycurl源目录中,在运行“python setup.py install”之前,如install.txt所示,您需要运行以下命令:

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. 基本上,它与-arch PPC相同的编译标志EXCEPT,导致它在Snow Leopard上失败。

Once you run the command above, then you can run: 运行上面的命令后,您就可以运行:

python setup.py install

And it should all be working. 它应该都有效。

You passed the following flags to the compiler when compiling PyCurl: 编译PyCurl时,您将以下标志传递给编译器:

ARCHFLAGS="-arch x86_64"

It seems that you have compiled PyCurl in 64-bit mode, while you use the 32-bit Python. 您似乎已经在64位模式下编译了PyCurl,而您使用的是32位Python。 Have you tried it with ARCHFLAGS="-arch i386" ? 你用ARCHFLAGS="-arch i386"试过吗?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM