Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 尝试在Mac Snow Leopard上安装PyCurl时出现问题_Python_Macos_Osx Snow Leopard_Pycurl_Importerror - Fatal编程技术网

Python 尝试在Mac Snow Leopard上安装PyCurl时出现问题

Python 尝试在Mac Snow Leopard上安装PyCurl时出现问题,python,macos,osx-snow-leopard,pycurl,importerror,Python,Macos,Osx Snow Leopard,Pycurl,Importerror,我的应用程序需要使用PyCurl,所以我尝试在Mac上安装它,但我发现了很多问题和错误 要求: 首先,我必须说,在我的Mac上工作的Python版本是基于32位的,因为我需要使用WxPython,这需要32位Python。 为此,我使用了: defaults write com.apple.versioner.python Prefer-32-Bit -bool yes 要安装PyCurl,我使用了: sudo env ARCHFLAGS="-arch x86_64" easy_install

我的应用程序需要使用PyCurl,所以我尝试在Mac上安装它,但我发现了很多问题和错误

要求: 首先,我必须说,在我的Mac上工作的Python版本是基于32位的,因为我需要使用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  
python/Users/lorenzodenobili/Desktop/python/AGGIORNATORE\u PY/Dropbox/wxPython/test.PY
回溯(最近一次呼叫最后一次):
文件“/Users/lorenzodenobili/Desktop/Python/AGGIORNATORE_PY/Dropbox/wxPython/test.PY”,第20行,在
导入pycurl
文件“build/bdist.macosx-10.6-universal/egg/pycurl.py”,第7行,在
文件“build/bdist.macosx-10.6-universal/egg/pycurl.py”,第6行,在bootstrap中
导入错误:dlopen(/Users/lorenzodenobili/.python-eggs/pycurl-7.16.2.1-py2.6-macosx-10.6-universal.egg-tmp/pycurl.so,2):未找到合适的图像。确实发现:
/Users/lorenzodenobili/.python-eggs/pycurl-7.16.2.1-py2.6-macosx-10.6-universal.egg-tmp/pycurl.so:mach-o,但架构错误

我真的不知道如何解决这个错误,所以我真的需要你的帮助

编译PyCurl时,您将以下标志传递给编译器:

ARCHFLAGS="-arch x86_64"

似乎您已经在64位模式下编译了PyCurl,而您使用的是32位Python。您是否使用
ARCHFLAGS=“-arch i386”

尝试从pip和easy\u安装时遇到了相同的问题。我通过下载pycurl源代码并为雪豹编译来安装和运行它。在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
,它的编译标志是相同的

运行上述命令后,即可运行:

python setup.py install

这一切都应该是有效的。

奇怪的是,它对我有效,我刚刚试过。您的配置和我的配置之间唯一的区别是我有
libcurl 7.19.7
,而您似乎有
7.20.0
。后者可能与版本号为
7.19.0
pycurl
不兼容。您是否从第三方来源安装了
curl
?OSXSnowLeopard似乎默认包含它,我使用它。