与苹果提供的Python并排安装Python 2.7.1

与苹果提供的Python并排安装Python 2.7.1,python,macos,osx-snow-leopard,Python,Macos,Osx Snow Leopard,我刚刚从下载了Python 2.7.1 DMG。我已经看到了获得ActivePython的建议,但我更喜欢Python.org上的建议 如果我只是在DMG中运行mpkg安装程序,接受所有默认设置,它会与苹果提供的Python和平共处吗 如果我在终端中键入python,我会得到哪一个 在终端中,如何指定运行苹果提供的Python?那我自己安装的Python呢 在安装不同的Python版本时,关于设置路径的内容是什么?我知道Python安装程序会自动设置它。但我还是想看看引擎盖下面。我知道如何在Wi

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

  • 如果我只是在DMG中运行
    mpkg
    安装程序,接受所有默认设置,它会与苹果提供的Python和平共处吗
  • 如果我在终端中键入
    python
    ,我会得到哪一个
  • 在终端中,如何指定运行苹果提供的Python?那我自己安装的Python呢
  • 在安装不同的Python版本时,关于设置
    路径的内容是什么?我知道Python安装程序会自动设置它。但我还是想看看引擎盖下面。我知道如何在Windows(环境变量)中执行此操作。对于Mac OS X,我如何修补
    路径
  • 我不妨先自己试试,但我对Mac电脑还不熟悉。Python的安装相当复杂,将文件写入不同的文件夹,并配置操作系统设置,如
    PATH
    。如果我想重新开始,垃圾箱或AppCleaner卸载Python可能不是很有效。因此,我想对上述问题有一个清晰的认识

  • 是的,它很好用
  • 您必须更改相应的符号链接。您始终可以使用
    检查哪个python
  • 您可以为不同版本(例如
    python\u-mac
    python\u-standard
    )创建额外的符号链接
  • 阅读

  • 如果在使用python.org安装程序时没有更改默认的包集,那么从命令行键入
    python
    应该运行新安装的python 2.7。(运行安装程序后需要启动新的终端会话才能看到这一点。)当前的python.org OS X安装程序根据python版本在应用程序目录中创建一个名为
    python m.n
    的文件夹。如果查看
    /Applications/python2.7
    ,您将看到一个名为
    更新Shell Profile.command
    的文件。这是一个shell脚本;您可以在编辑器中或使用Quicklook检查它。其目的是修改OS X上最常见的shell程序的启动文件(
    bash
    sh
    csh
    ),以确保新Python可执行命令所在的目录添加到PATH环境变量中目录列表的前面,因此,在找到Apple提供的python命令之前,将先找到其中的python命令。默认情况下,安装程序会自动为您运行
    updateshell 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*
    
    如果您查看该目录,应该会看到如下内容:

    $ 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
    指向它。由于路径环境已更改:

    $ echo $PATH
    /Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
    
    当您在shell中键入
    python
    作为命令时,将首先在
    /usr/bin
    中苹果提供的
    python
    之前找到该符号链接,该目录安装了系统提供的用户命令(在OS X 10.6上):

    (注意,一般来说,您不应该试图修改或删除
    /usr/bin
    中的文件,因为它们是OS X的一部分,由Apple管理。)

    在OSX上管理多个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)]
    

    如果使用
    virtualenv

    你可以关注这些文章

  • 它们将指导您在不同的地方安装不同版本的python,每个地方都有自己的站点包集,并让它们分别在不同的项目上工作。强烈建议您仔细研究它,因为它还解释了如何以一种简单的方式更改
    PATH
    变量,以便您的shell命令可以找到不同的python安装

    下面是一些关于不同python安装的快速信息

    在终端键入
    哪个python
    将告诉您它的位置。您还可以使用
    python-V
    查看所使用的版本。记住,
    python
    python2.x
    可以是不同的东西。您可以使用
    alias
    命令为不同的python安装分配适当的名称,以便在终端或脚本中调用它们。比如说,

    alias /Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7 sys-py27
    
    • 苹果提供的系统python安装在
      /system/Library/Frameworks/python.framework
      /usr/bin/python

      • 事实上,您不应该试图手动删除它们来处理这些问题。计算机中的其他软件可能正在使用python系统
      • 要检查当前可以使用的系统python

        python-c'导入系统;打印(系统版本)

    • 下载并运行的打包安装程序通常安装到
      /Library/Frameworks/Python.framework/Versions/2.7/bin/

      • 您可以手动删除Python.framework文件夹。您可能还会在Applications文件夹中看到Python以及IDLE、AppBuilder和PythonLauncher等其他内容。如果需要的话,你可以继续删除这些内容
    • MacPorts将在
      /opt/local/Library/Frameworks/python.framework/Versions/2.7/bin/

      • 您可以使用常用的
        sudo-port-uninstall-packageName
        卸载它们,如果您想删除依赖项,请使用类似以下代码的方法

        sudo端口卸载pytho