Domanda

Ho ottenuto il seguente errore durante la compilazione di SIP con opzione X86_64.

prosseek:siplib smcho$ python -c 'import sip; print sip'
Traceback (most recent call last):
  File "", line 1, in 
ImportError: dlopen(./sip.so, 2): no suitable image found.  Did find:
        ./sip.so: mach-o, but wrong architecture
.

Ho scoperto che il prewoilt Mac OS X Python (Snow Leopard) è universale, e non ottiene la libreria a 64 bit.Immagino che sia in esecuzione sulla modalità a 32 bit.

file /usr/bin/python 
/usr/bin/python: Mach-O universal binary with 3 architectures
/usr/bin/python (for architecture x86_64):      Mach-O 64-bit executable x86_64
/usr/bin/python (for architecture i386):        Mach-O executable i386
/usr/bin/python (for architecture ppc7400):     Mach-O executable ppc
.
prosseek:siplib smcho$ file sip.so
sip.so: Mach-O 64-bit bundle x86_64
.

Come posso costringere Python a correre sulla modalità 64 bit?Quando eseguo lo stesso codice su TextMate, non ci sono problemi.Quindi, penso che il coinquilino deve funzionare in modalità 64 bit.

aggiunto

    .
  • Questo link Mostra come identificare se un Python che sto correndo è a 32 bit o 64 bit.E ho controllato il mio Python è a 32 bit.
  • Questo link mostra come fare 32/64 bit Python.Ma non funziona per me.
È stato utile?

Soluzione

Prova a usare Arch (1) e fornisce la versione specifica di Python:

arch -x86_64 /usr/bin/python2.6
.

In realtà il sistema dovrebbe scegliere la prima architettura adatta per te.AS

$ file /usr/bin/python2.5
/usr/bin/python2.5: Mach-O universal binary with 2 architectures
/usr/bin/python2.5 (for architecture i386): Mach-O executable i386
/usr/bin/python2.5 (for architecture ppc7400):  Mach-O executable ppc

$ file /usr/bin/python2.6
/usr/bin/python2.6: Mach-O universal binary with 3 architectures
/usr/bin/python2.6 (for architecture x86_64):   Mach-O 64-bit executable x86_64
/usr/bin/python2.6 (for architecture i386): Mach-O executable i386
/usr/bin/python2.6 (for architecture ppc7400):  Mach-O executable ppc
.

Se quel python in qualche modo sceglie 2.5, quindi non è possibile utilizzare 64 bit, ma se sceglie 2,6, la variante X86_64 deve essere selezionata automaticamente, come commentato di seguito.Se è il primo, prova a ottenere python_select e modificare la versione a 2.6.

Altri suggerimenti

Ok, stai davvero attento quando lo fai, richiederà altre cose per essere anche 64 bit.All'improvviso, se Mod_python non funzionerà, è necessario ricompilare Apache.Quindi tutti i tuoi moduli Python come Tkinter / Tix.Se sei su 10.5 come me, non andare lì, vivi solo con 32 bit per questo.

E se non sai su http://www.macports.org/ quindi ricordache è tuo amico.: -)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top