2010-05-06 16 views
6

Mi aplicación necesita usar PyCurl, así que traté de instalarla en mi Mac pero encontré muchos problemas y errores.Problema al intentar instalar PyCurl en Mac Snow Leopard

Requisito: Antes que nada, tengo que decir que la versión de Python que trabaja en mi Mac está basada en 32 bits, porque necesito usar WxPython, que necesita Python de 32 bits. Para hacer esto he utilizado:

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

Para instalar pycurl utilicé:

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

y el terminal de regresar:

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 

Así que pensé que pycurl se ha instalado y funcionando correctamente, pero cuando comencé mi aplicación, python me devolvió un 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 

Realmente no tengo ni idea de cómo resolver este error, ¡así que realmente necesito tu ayuda!

Respuesta

1

usted pasó los siguientes banderas para el compilador al compilar pycurl:

ARCHFLAGS="-arch x86_64" 

Parece que ha compilado pycurl en modo de 64 bits, mientras que se utiliza el pitón de 32 bits. ¿Lo has probado con ARCHFLAGS="-arch i386"?

+0

nada de nuevo sucede ... ¡todo el error en la respuesta! – elledienne

+0

Por extraño que parezca, me funciona, acabo de probarlo. La única diferencia entre tu configuración y la mía es que tengo 'libcurl 7.19.7', mientras que parece que tienes' 7.20.0'. Este último podría ser incompatible con 'pycurl', que tiene un número de versión de' 7.19.0'. ¿Has instalado 'curl' de una fuente externa? OS X Snow Leopard parece incluirlo por defecto y yo uso eso. –

-1

iMac: ARCHFLAGS pycurl-7.19.0 lorenzodenobili $ sudo env = "-" arco i386 easy_install setuptools pycurl Busca setuptools Coincidencia: setuptools 0.6c11 Procesamiento setuptools-0.6c11-py2.6.egg setuptools 0.6c11 ya es la versión activa en fácil-install.pth Instalación easy_install secuencia de comandos para// local/bin usr Instalación easy_install-2,6 guión a/usr/local/bin

Usando /Library/Python/2.6/site -packages/setuptools-0.6c11-py2.6.egg Dependencias de procesamiento para setuptools Procesamiento final dependencie s para setuptools Busca pycurl Lectura Lectura http://pypi.python.org/simple/pycurl/ http://pycurl.sourceforge.net/ lectura http://pycurl.sourceforge.net/download/ Coincidencia: pycurl 7.19.0 Descarga de http://pycurl.sourceforge.net/download/pycurl-7.19.0.tar.gz Procesamiento pycurl-7.19.0.tar.gz Correr pycurl-7.19.0/setup.py - q bdist_egg --dist-dir /tmp/easy_install-tpClDx/pycurl-7.19.0/egg-dist-tmp-bGXtsd Usando curl-config (libcurl 7.20.0) En archivo incluido desde/opt/local/include/curl/curl.h: 36, de src/pycurl.c: 50: /opt/local/include/curl/curlrules.h:144: error: tamaño de la matriz 'curl_rule_01 'es negativo /opt/local/include/curl/curlrules.h:154: error: el tamaño de la matriz' curl_rule_02 'es negativo error: El script de instalación salió con error: el comando' gcc-4.2 'falló con la salida estado 1

2

Me encontré con el mismo problema al intentar instalar desde pip y easy_install. Lo tengo instalado y funcionando descargando la fuente pycurl y compilando para Snow Leopard. En el directorio fuente pycurl, antes de ejecutar "python setup.py install" como instalación.txt dice, es necesario ejecutar este:

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 

Básicamente, son las mismas banderas de compilación SALVO -arch PPC, que estaba causando que falle en Snow Leopard.

Una vez que se ejecuta el comando anterior, a continuación, puede ejecutar:

python setup.py install 

Y todo debería estar funcionando.

+0

¡Gracias! ¡Trabajó para mi! – Dmitry