OS X上预安装了多少个版本的python?

时间:2014-05-25 00:30:38

标签: python macos

根据文档,Apple提供的Python版本分别安装在/System/Library/Frameworks/Python.framework/usr/bin/python中。这是否意味着安装了两个python副本?

/usr/bin/中,我有pythonpython2.5python2.6python2.7。虽然python2.5python2.6python2.7/System/Library/Frameworks/中各自版本的链接,但似乎python不是链接,而是可执行文件本身。

ls-l中我usr/bin/python的输出是:

-rwxr-xr-x 2 root wheel 58608 Mar 7 00:24 python lrwxr-xr-x 1 root wheel 75 Mar 7 00:24 python2.5 -> ../../System/Library/Frameworks/Python.framework/Versions/2.5/bin/python2.5 lrwxr-xr-x 1 root wheel 75 Mar 7 00:24 python2.6 -> ../../System/Library/Frameworks/Python.framework/Versions/2.6/bin/python2.6 lrwxr-xr-x 1 root wheel 75 Mar 7 00:24 python2.7 -> ../../System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7

2 个答案:

答案 0 :(得分:3)

在现代OS X系统上,/usr/bin/python是一个特殊的"包装器" Apple提供的可执行文件,用于管理/usr/bin/python执行哪个版本的Python以及哪个CPU架构(例如32位或64位)。 a previous SO answer和Apple的python手册页(man 1 python)中有更多详细信息。正如您所注意到的,版本化的Python文件(/usr/bin/python2.7等)是/System/Library/Frameworks中通用Python可执行文件的符号链接。

顺便说一下,这是另一个原因,您不应该尝试修改/usr/usr/local除外)或/System/Library中的文件;它们并不总是你认为的那样。这些位置的文件是OS X的一部分,由Apple管理。

答案 1 :(得分:0)

执行/usr/bin/python -V以查看该python的版本。该二进制文件包含python解释器。

/System/Library/Frameworks/Python.framework应包含您导入的python系统库。您可以通过在shell中启动python来验证这一点(以下是从Linux框输出):

$ python
Python 2.7.6 (default, Mar 22 2014, 15:40:47) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print sys.path
['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PILcompat', '/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.7']