使用Apple提供的Python并行安装Python 2.7.1

Kit*_*Kit 12 python macos osx-snow-leopard

我刚刚从Python.org下载了Python 2.7.1 DMG .我已经看到了获得ActivePython的建议,但我更喜欢Python.org中的建议.

  1. 如果我只是mpkg在DMG中运行安装程序,接受所有默认设置,它是否会与Apple提供的Python和平共处?
  2. 如果我输入python终端,我会得到哪一个?
  3. 在终端中,如何指定运行Apple提供的Python?我自己安装的Python怎么样?
  4. PATH在安装不同的Python版本时,这些讨论是什么?我知道Python安装程序会自动设置它.但我还是想偷看.我知道如何在Windows(环境变量)中执行此操作.对于Mac OS X,我该如何修补PATH

我不妨先试试这些,但我是Mac的新手.Python是一个非常复杂的安装,将文件写入不同的文件夹并配置操作系统设置,如PATH.TrashMe或AppCleaner在卸载Python时可能不是很有效,如果我想要回到干净的平台.因此,我希望从上面的问题中获得明确的见解.

Ned*_*ily 24

如果在使用python.org安装程序时未更改默认的软件包集,则从命令行键入python应运行新安装的Python 2.7.(在运行安装程序之后,您需要启动一个新的终端会话才能看到这一点.)OS X的当前python.org安装程序在Applications目录中创建一个文件夹,该文件夹Python m.n根据Python版本命名.如果您查看/Applications/Python 2.7,您将看到一个名为的文件Update Shell Profile.command.这是一个shell脚本; 您可以在编辑器中或使用Quicklook进行检查.其目的是修改OS X(bash,)上最常见的shell程序的启动文件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
Run Code Online (Sandbox Code Playgroud)

如果您查看该目录,您应该看到如下内容:

$ 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*
Run Code Online (Sandbox Code Playgroud)

新的python可用作命令,python2.7但也有一个符号链接python.因为PATH环境已更改:

$ echo $PATH
/Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
Run Code Online (Sandbox Code Playgroud)

当键入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@
Run Code Online (Sandbox Code Playgroud)

(注意,一般情况下,您不应尝试修改或删除文件,/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)]
Run Code Online (Sandbox Code Playgroud)