2010-05-06 3 views
6

La mia app deve utilizzare PyCurl, quindi ho provato ad installarlo sul mio Mac ma ho riscontrato molti problemi ed errori.Problema durante il tentativo di installazione di PyCurl su Mac Snow Leopard

Requisito: Prima di tutto devo dire che la versione di Python che funziona sul mio Mac è a 32 bit, perché ho bisogno di usare WxPython, che ha bisogno di Python a 32 bit. Per fare questo ho usato:

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

Per installare pycurl ho usato:

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

e il terminale tornato:

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 

così ho pensato che pycurl è stato correttamente installato e funzionante, ma quando ho avviato la mia app, python mi ha restituito un errore:

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 

Non ho davvero alcuna idea su come risolvere questo errore, quindi ho davvero bisogno del tuo aiuto!

risposta

1

hai superato i seguenti flag al compilatore durante la compilazione pycurl:

ARCHFLAGS="-arch x86_64" 

Sembra che avete compilato pycurl in modalità a 64 bit, mentre si utilizza il Python a 32 bit. Hai provato con ARCHFLAGS="-arch i386"?

+0

niente di nuovo succede .. l'intero errore nella risposta! – elledienne

+0

Stranamente, funziona per me, l'ho appena provato. L'unica differenza tra la tua configurazione e la mia è che ho 'libcurl 7.19.7', mentre tu sembri avere' 7.20.0'. Quest'ultimo potrebbe essere incompatibile con 'pycurl', che ha un numero di versione di' 7.19.0'. Hai installato 'arricciato 'da una fonte di terze parti? OS X Snow Leopard sembra includerlo di default e io lo uso. –

-1

iMac: ARCHFLAGS pycurl-7.19.0 lorenzodenobili $ sudo env = "- arch i386" easy_install setuptools pycurl Ricerca di setuptools Miglior risultato: setuptools 0.6c11 Processing setuptools-0.6c11-py2.6.egg setuptools 0.6c11 è già la versione attiva in facile install.pth Installazione easy_install script per/usr/local/bin Installazione easy_install-2.6 script per/usr/local/bin

Utilizzando /Library/Python/2.6/site -packages/setuptools-0.6c11-py2.6.egg Dipendenze di elaborazione per setuptools dependencie di elaborazione terminata s per setuptools Ricerca di pycurl Reading http://pypi.python.org/simple/pycurl/ Lettura http://pycurl.sourceforge.net/ lettura http://pycurl.sourceforge.net/download/ Miglior risultato: pycurl 7.19.0 Download http://pycurl.sourceforge.net/download/pycurl-7.19.0.tar.gz Processing pycurl-7.19.0.tar.gz Esecuzione pycurl-7.19.0/setup.py - q bdist_egg --dist-dir /tmp/easy_install-tpClDx/pycurl-7.19.0/egg-dist-tmp-bGXtsd Uso di curl-config (libcurl 7.20.0) Nel file incluso da/opt/local/include/curl/curl.h: 36, da src/pycurl.c: 50: /opt/local/include/curl/curlrules.h:144: errore: dimensione dell'array 'curl_rule_01 'è negativo /opt/local/include/curl/curlrules.h:154: errore: dimensione dell'array' curl_rule_02 'è negativo errore: errore di installazione terminato con errore: comando' gcc-4.2 'non riuscito con uscita stato 1

2

Ho riscontrato lo stesso problema durante il tentativo di installazione da pip e easy_install. L'ho installato e funzionante scaricando il sorgente pycurl e compilando per Snow Leopard. Nella directory sorgente di pycurl, prima di eseguire "python setup.py install" come installazione.txt dice, è necessario eseguire questo:

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 

In sostanza, è la stessa flag di compilazione ad eccezione di -arch PPC, che causava il fallimento su Snow Leopard.

Una volta che si esegue il comando di cui sopra, allora si può eseguire:

python setup.py install 

E il tutto va a lavorare.

+0

Grazie! Ha funzionato per me! – Dmitry