2010-09-29 119 views
0

我想安裝Python 2.5.5以與Google應用程序一起使用,但一直在很難跟蹤如何這樣做的說明。我在想以下方法可行,但想知道是否有人成功構建了它?在OS X上編譯Python 2.5.5 10.6

./configure --prefix=/usr/local/python2.5.5 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 

任何幫助表示讚賞!

+3

首先:你爲什麼要手動構建Python? OS X 10.6包括Python 2.5和2.6,並且有官方的OS X版本可以從http://python.org以Disk Image形式獲得。 – Philipp 2010-09-29 13:27:10

回答

0

Python 2.5在Mac OS X 10.6上無法正確構建。 (雖然在10.5或10.4版本上它確實構建了OK ,但仍然是)。至少有一個配置修復需要從後來的Pythons進行反向移植。你需要使用gcc-4.0,而不是-4.2。一旦你已經提取來源:

cd ./Python-2.5.5/ 
cat >patch-configure-for-10-6.patch <<EOF 
--- configure.O 2008-12-13 06:13:52.000000000 -0800 
+++ configure 2010-09-29 10:16:05.000000000 -0700 
@@ -2039,7 +2039,11 @@ 
    # disables platform specific features beyond repair. 
    # On Mac OS X 10.3, defining _POSIX_C_SOURCE or _XOPEN_SOURCE 
    # has no effect, don't bother defining them 
- FreeBSD/4.* | Darwin/[6789].*) 
+ FreeBSD/4.*) 
+ define_xopen_source=no;; 
+ Darwin/[6789].*) 
+ define_xopen_source=no;; 
+ Darwin/1[0-9].*) 
    define_xopen_source=no;; 
    # On AIX 4 and 5.1, mbstate_t is defined only when _XOPEN_SOURCE == 500 but 
    # used in wcsnrtombs() and mbsnrtowcs() even if _XOPEN_SOURCE is not defined 
EOF 
patch < patch-configure-for-10-6.patch 
export CC=/usr/bin/gcc-4.0 
./configure --prefix=/usr/local --enable-framework MACOSX_DEPLOYMENT_TARGET=10.6 
make 
sudo make install 

然後有像所需要的所有標準庫模塊的建立和工作如預期的第三方庫各種不太明顯的積累的問題 - GNU的readline和bsddb來介意 - 所以不能保證你不會遇到其他問題。

$ python2.5 
Python 2.5.5 (r255:77872, Sep 29 2010, 10:23:54) 
[GCC 4.0.1 (Apple Inc. build 5494)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
Module readline not available. 
>>> 

你可以嘗試使用源代碼樹安裝程序生成腳本(在Mac/BuildScript/),但它可能會需要修補到10.6正常工作。

即使2.5.5沒有官方的python.org安裝程序(它只是安全修補程序),但有一個OS X installer for 2.5.4,它在10.6上正常工作。或者使用Apple提供的2.5.4。或者試試MacPorts。在當前的Python版本上支持GAE會很好。

1

您應該通過MacPorts來安裝它,這使得它小菜一碟。你安裝後...

$ sudo port install python25 
+0

Mac端口使它非常簡單我只是好奇,如果任何人成功編譯它自己。 – wonbyte 2010-09-29 15:17:20

1

您應該通過Fink安裝,這使得這一塊蛋糕。安裝完成後...

$ fink install python25 

Fink比MacPorts有更多的軟件包。

+1

芬克也有工作的優勢。 – asmeurer 2010-11-09 17:16:57

0

假設你正在運行OS 10.6,在終端如果鍵入

% python<tab> 

終端應顯示你對你的PATH所有python*項目。正如@philipp所暗示的那樣,默認情況下會安裝Python 2.5和Python 2.6。您可以看到列爲:

python2.5 
python2.6 

您還會看到一個條目,它只是python。這是在命令行調用命令python時默認使用的那個。要查看此默認版本的版本,可以通過在命令行輸入python來啓動它,並記下啓動時打印的文本,或者執行which python以查看該可執行文件的絕對路徑。

PATH在OS X上的可執行文件由鏈接管理,所以看到的實際位置

ls -lha `which python` 
ls -lha `which python2.5` 
ls -lha `which python2.6` 

注backtics將導致which命令來運行,並將結果插入到ls命令。

最後,您可以使用python_select命令選擇默認的Python版本。我對此沒有太多的經驗,因爲我通常通過自己的軟鏈接或shell別名管理對Python的訪問。

所有的說法,如果你打算安裝大量的軟件包用於開發目的,請給出@Dave Pirotte的建議。通過使用MacPortsfink,您將在系統Python安裝之外獲得新的Python安裝(以及您需要的任何其他軟件包)。如果您需要進行大量修改,並且如果您要努力提高Python安裝的健康度,則此方法可能非常方便,如果不篡改默認系統Python,則可以更輕鬆地掃描slate並重新開始。 。