在OS X 10.6上编译Python 2.5.5

时间:2010-09-29 13:17:38

标签: python macos

我想安装Python 2.5.5以与Google应用程序一起使用,但一直很难跟踪有关如何执行此操作的说明。我想以下可能会有效,但是想知道是否有人成功建造了它?

./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

感谢任何帮助!

4 个答案:

答案 0 :(得分:1)

您应该通过MacPorts进行安装,这会让这件事变得轻而易举。安装后......

$ sudo port install python25

答案 1 :(得分:1)

您应该通过Fink进行安装,这会让这件事变得轻而易举。安装后......

$ fink install python25

Fink拥有比MacPorts更多的软件包。

答案 2 :(得分:0)

假设您正在运行OS 10.6,如​​果键入

,则在终端上
% python<tab>

终端应显示python*上的所有PATH项。正如 @philipp 所建议的那样,默认情况下会安装Python 2.5和Python 2.6。您可以看到列为:

python2.5
python2.6

您还会看到仅python的条目。当您在命令行调用命令python时,这是默认使用的那个。要查看此默认版本的版本,请通过在命令行键入python并注意启动时打印的文本来启动它,或者执行which python以查看该可执行文件的绝对路径。

OS X上PATH中的可执行文件由链接管理,以便查看实际位置

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,则更容易清除平板并重新开始

答案 3 :(得分:0)

Python 2.5无法在Mac OS X 10.6上正确构建。 (但它确实在10.5或10.4上构建了,就像一样。)至少有一个配置修复需要从后来的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时会很好。