如果您在使用 python.org 安装程序时未更改默认软件包集,则从命令行键入 python 应该会运行新安装的 Python 2.7。 (运行安装程序后,您需要启动一个新的终端会话才能看到这一点。)当前适用于 OS X 的 python.org 安装程序会在您的应用程序目录中创建一个名为 Python m.n 的文件夹,具体取决于 Python 版本。如果您查看/Applications/Python 2.7,您会看到一个名为Update Shell Profile.command 的文件。这是一个shell脚本;您可以在编辑器中或使用 Quicklook 进行检查。其目的是修改 OS X 上最常见的 shell 程序的启动文件(bash、sh、csh),以确保将新 Python 的可执行命令所在的目录添加到PATH 环境变量中的目录列表,以便在找到 Apple 提供的 python 命令之前找到其中的 python 命令。默认情况下,安装程序会自动为您运行Update Shell Profile.command。这应该会导致这样的结果:
$ cat ~/.bash_profile
# .bash_profile
# ... other stuff
# Setting PATH for Python 2.7
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
export PATH
如果您查看该目录,您应该会看到如下内容:
$ ls -l /Library/Frameworks/Python.framework/Versions/2.7/bin
total 272
lrwxr-xr-x 1 root admin 8 Nov 30 00:49 2to3@ -> 2to3-2.7
-rwxrwxr-x 1 root admin 140 Nov 30 00:30 2to3-2.7*
lrwxr-xr-x 1 root admin 7 Nov 30 00:49 idle@ -> idle2.7
-rwxrwxr-x 1 root admin 138 Nov 30 00:30 idle2.7*
lrwxr-xr-x 1 root admin 8 Nov 30 00:49 pydoc@ -> pydoc2.7
-rwxrwxr-x 1 root admin 123 Nov 30 00:30 pydoc2.7*
lrwxr-xr-x 1 root admin 9 Nov 30 00:49 python@ -> python2.7
lrwxr-xr-x 1 root admin 16 Nov 30 00:49 python-config@ -> python2.7-config
-rwxrwxr-x 1 root admin 33764 Nov 30 00:31 python2.7*
-rwxrwxr-x 1 root admin 1663 Nov 30 00:31 python2.7-config*
lrwxr-xr-x 1 root admin 10 Nov 30 00:49 pythonw@ -> pythonw2.7
-rwxrwxr-x 1 root admin 33764 Nov 30 00:31 pythonw2.7*
lrwxr-xr-x 1 root admin 11 Nov 30 00:49 smtpd.py@ -> smtpd2.7.py
-rwxrwxr-x 1 root admin 18586 Nov 30 00:30 smtpd2.7.py*
新的 python 可以作为命令python2.7 使用,但也有一个符号链接到它作为python。因为PATH环境变了:
$ echo $PATH
/Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
当您在 shell 中键入 python 作为命令时,将首先在 Apple 提供的 python 之前在安装系统提供的用户命令的目录之一的 /usr/bin 中找到该符号链接(如在 OS X 10.6):
$ ls /usr/bin/py*
/usr/bin/pydoc* /usr/bin/python-config* /usr/bin/python2.6-config@
/usr/bin/pydoc2.5@ /usr/bin/python2.5@ /usr/bin/pythonw*
/usr/bin/pydoc2.6@ /usr/bin/python2.5-config@ /usr/bin/pythonw2.5@
/usr/bin/python* /usr/bin/python2.6@ /usr/bin/pythonw2.6@
(请注意,一般情况下,您不应尝试修改或删除 /usr/bin 中的文件,因为它们是 OS X 的一部分并由 Apple 管理。)
有很多方法可以在 OS X 上管理多个 Python 安装;检查档案或网络。要记住的一件事是,您始终可以使用所需 python 命令的绝对路径进行检查。因此,使用上述修改后的路径,您应该会看到以下行为:
$ /Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7 -c 'import sys;print(sys.version)'
2.7.1 (r271:86882M, Nov 30 2010, 09:39:13)
[GCC 4.0.1 (Apple Inc. build 5494)]
$ python2.7 -c 'import sys;print(sys.version)'
2.7.1 (r271:86882M, Nov 30 2010, 09:39:13)
[GCC 4.0.1 (Apple Inc. build 5494)]
$ python -c 'import sys;print(sys.version)'
2.7.1 (r271:86882M, Nov 30 2010, 09:39:13)
[GCC 4.0.1 (Apple Inc. build 5494)]
$ /usr/bin/python -c 'import sys;print(sys.version)'
2.6.1 (r261:67515, Jun 24 2010, 21:47:49)
[GCC 4.2.1 (Apple Inc. build 5646)]
$ /usr/bin/python2.6 -c 'import sys;print(sys.version)'
2.6.1 (r261:67515, Jun 24 2010, 21:47:49)
[GCC 4.2.1 (Apple Inc. build 5646)]