簡體   English   中英

如何在OS X 10.6上構建64位Python - 只有64位,沒有通用的廢話

[英]How to build 64-bit Python on OS X 10.6 — ONLY 64 bit, no Universal nonsense

我只是想在我的開發機器上構建它 - 來自Python.org的二進制安裝仍然是32位,安裝擴展(例如MySQLdb)讓我瘋狂,試圖找出每個擴展的正確標志。

澄清:我沒有替換系統Python,我只是將Python.org二進制文件安裝到/ Library / ...的正常位置,而不是/ System / Library / ....

默認情況下,其他所有內容似乎都構建了64位,默認的Python 2.6.1是64位(在我用Python.org構建代替它之前,它是直接替代它)

我只想要一個64位的版本,它將在我的一台機器上運行,沒有任何瑕疵。

有沒有人有一個簡單的答案?

非常感謝,ssteinerX @ gmail.com

如果您碰巧使用的是MacPorts ,那就像指定變量一樣簡單,告訴它不要編譯Universal,如下所示:

sudo port install python26 -universal

您可以使用variants命令查看可用的變variants

% port variants python26                                                        
python26 has the variants:
   darwin: Platform variant, selected automatically
   no_tkinter: Disable Tkinter support, which will break IDLE
   ucs4: Enable support for UCS4
   universal: Build for multiple architectures

正如您所看到的,默認情況下在10.6上它構建了darwin變體,它僅構建x86_64:

% cd /opt/local/Library/Frameworks/Python.framework/Versions/2.6/bin/
% file python2.6
python2.6: Mach-O 64-bit executable x86_64

比較默認的python二進制文件,即Universal:

% 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

如果您不使用MacPorts,我建議您考慮一下。 它節省了大量的時間和心痛,不得不手動配置和編譯所有東西,並且有一個很棒的GUI界面叫做Porticus 當然,所有免費和開源!

ps 切勿替換或重命名原始系統二進制文件! 正如Ned Daily的評論中所建議的那樣:

“通過更改PATH環境變量中的搜索順序來管理對預期python實例的訪問,或者,如果需要,使用像/opt/local/bin/python2.6這樣的絕對路徑”。

最簡單的解決方案是從MacPorts中提取您需要的所有內容

$ sudo port selfupdate
$ sudo port install python26 +no_tkinter -universal py26-mysqldb -universal

這將安裝python2.6,MySQLdb適配器和必要的MySQL客戶端庫。 我建議添加no_tkinter變體,除非你真的需要no_tkinter ; 10.6的MacPorts版Tk存在一些問題。

編輯:注意,MacPorts Python將安裝為/opt/local/bin/python2.6 您可能需要調整shell $ PATH以確保在/ usr / local / bin和/ usr / bin之前使用/ opt / local / bin。 如果你想/ opt / local / bin / python引用MacPorts python2.6,請執行以上操作:

$ sudo port install python_select
$ sudo python_select python26

總是macports ... sheesh

這就是我做的:

~: wget http://python.org/ftp/python/2.6.5/Python-2.6.5.tar.bz2
~: tar xjf Python-2.6.5.tar.bz2
~: cd Python-2.6.5
~: ./configure ./configure MACOSX_DEPLOYMENT_TARGET=10.6 --enable-framework --with-universal-archs="64-bit" CFLAGS="-arch x86_64" LDFLAGS="-arch x86_64"
~: make -j6
~: sudo make install

在FLAGS上可能有點多余,但它確實有效。

一旦你使用上面列出的方法獲得64位Python設置,我也發現Aaron Meurer的這篇博文有助於驗證Python實際上是安裝為64位。 該文章還談到了運行64位Python和32位安裝,我想這對某些目的很有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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