[英]How to force using 64 bit python on Mac OS X?
使用--arch x86_64選項編譯sip時出現以下錯誤。
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
我發現預構建的Mac OS X python(雪豹)是通用的,並且沒有64位庫。 我猜它正在32位模式下運行。
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
如何強制python在64位模式下運行? 當我在Textmate上運行相同的代碼時,沒有問題。 因此,我認為Textmate無論如何都應該在64位模式下運行。
嘗試使用arch(1) ,並提供特定版本的Python:
arch -x86_64 /usr/bin/python2.6
實際上,系統應該為您選擇第一個合適的體系結構。 如
$ 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
如果該python
以某種方式選擇了2.5,則不能使用64位,但如果選擇2.6,則應自動選擇x86_64變體,如下所述。 如果是前者,請嘗試獲取python_select
並將版本更改為2.6。
好的,執行此操作時請務必小心,這將要求其他條件也必須為64位。 突然之間,如果mod_python無法正常工作,則需要重新編譯apache。 然后,您的所有python模塊(如tkinter / tix)。 如果您像我一樣使用10.5,請不要去那里,只需使用32位即可。
如果您不了解http://www.macports.org/,那么請記住,它是您的朋友。 :-)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.