2010-09-29 97 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并重新开始。 。