簡體   English   中英

如何在Mac OS X上強制使用64位python?

[英]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位模式下運行。

添加

  • 該鏈接顯示了如何識別我正在運行的python是32位還是64位。 我檢查了我的python是32位的。
  • 此鏈接顯示了如何制作32/64位python。 但這對我不起作用。

嘗試使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM