Comment faire pour forcer l'aide de 64 bits python sur Mac OS X?
-
13-09-2020 - |
Question
J'ai obtenu l'erreur suivante lors de la compilation de sip avec --arch x86_64 option.
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
J'ai trouvé que les prédéfinis Mac OS X de python (snow leopard) est universelle, et qu'il ne soit pas le 64 bits bibliothèque.Je suppose que c'est en cours d'exécution sur mode 32 bits.
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
Comment puis-je la force python pour exécuter sur 64 bits mode?Lorsque j'exécute le même code sur Textmate, il n'y a pas de problème.Donc, je pense que Textmate devrait fonctionner sur 64 bits mode de toute façon.
Ajouté
La solution
Essayez d'utiliser arch(1), et de la fourniture de la version de Python:
arch -x86_64 /usr/bin/python2.6
En fait le système doit choisir la première bonne architecture pour vous.Comme
$ 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
Si c' python
en quelque sorte choisit de 2,5, alors vous ne pouvez pas utiliser la version 64 bits, mais si elle choisit de 2,6 puis le x86_64 variante doit être automatiquement sélectionné, comme indiqué ci-dessous.Si c'est l'ancien, essayez d'obtenir python_select
et de changer la version 2.6.
Autres conseils
D'accord, soyez vraiment prudent lorsque vous faites cela, il faut que d'autres choses soient également de 64 bits.Tout à coup, si mod_python ne fonctionnera pas, alors vous devez recompiler Apache.Ensuite, tous vos modules Python comme Tkinter / TIX.Si vous êtes sur 10.5 comme moi, n'allez pas là-bas, viennent de vivre avec 32 bits pour cela.
et si vous ne connaissez pas http://www.macports.org/ puis rappelez-vousQue c'est ton ami.: -)