Python OS X Yosemite 上的口译员 - 使用哪一个?

Python interpreters on OS X Yosemite - which one to use?

我最近从 Windows 切换到 Mac,安装 PyCharm 后我不得不指定一个解释器。在下拉列表中,我可以在 3 位口译员之间进行选择:

  1. Macintosh HD ▸ usr ▸ local ▸ Cellar ▸ python ▸ 2.7.9 ▸ Frameworks ▸ Python.framework ▸ Versions ▸ 2.7 ▸ bin
  2. Macintosh HD ▸ 系统 ▸ 库 ▸ 框架 ▸ Python.framework ▸ 版本 ▸ 2.7 ▸ bin
  3. Macintosh HD ▸ 系统 ▸ 库 ▸ 框架 ▸ Python.framework ▸ 版本 ▸ 2.6 ▸ bin

(实际上我可以看到最后一个文件夹中还有 2.5 和 2.3 版本,但是 PyCharm 中没有显示)。

但是,如果我在终端中输入 python,然后输入

import sys
print sys.executable

我得到:

  1. /usr/local/opt/python/bin/python2.7

为了让它更加混乱,当我在 IPython Notebook 中键入相同的内容时(使用 ipython notebook 从终端运行)我得到:

  1. /usr/bin/python

问题:

您实际上只有 两个 Python 2.7 安装,以及一个您几乎可以忽略的 2.6 Python 版本:

  • /usr/local/Cellar/ 是用户安装的(通过 Homebrew)。它将链接到 /usr/local/opt 目录结构:

    $ /usr/local/bin/python -c "import sys; print sys.prefix"
    /usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7
    

    其中 /usr/local/opt/python 是指向 Cellar 目录的符号链接:

    $ ls -la /usr/local/opt/python
    lrwxr-xr-x  1 mj  admin  22 Jan  5 18:36 /usr/local/opt/python -> ../Cellar/python/2.7.9
    

    此结构允许您在 /usr/local 树中轻松启用和禁用 Python,而无需完全重新安装自制程序 Python 如果您以后需要再次使用,也作为特定版本之间的交换。

  • 2.7 是 current 版本,由 OS X 软件本身使用(并且安装了一些额外的库,它们可能会在它们出现时发生冲突before site-packages 在 Python 包路径中)。它安装在/System/Library/Frameworks,但/usr/bin/python/usr/bin/python2.7是相同的Python安装:

    $ /usr/bin/python -c "import sys; print sys.prefix"
    /System/Library/Frameworks/Python.framework/Versions/2.7
    
  • 2.6 和其他文件夹用于在 OS X 的 previous 版本上需要特定版本的遗留软件; Apple 似乎已经决定任何需要 2.3 或 2.5 的东西都可以 运行 使用 2.6(而且他们是对的,在大多数情况下)。

新软件开发,使用2.7系统安装版或Homebrew版;如果您需要在新的 2.7.x 版本中进行修复,后者更容易升级。然而,总是使用 virtualenv 来安装额外的包,特别是如果你使用 OS X 2.7 版本。另请参阅 PyCharm 文档中的 Creating Virtual Environment

PyCharm 否则,您可以配置每个项目要使用的解释器,请参阅 Project Interpreter

IPython 是一个 Python 应用程序,它建立在 Python 之上。因此它与 Python 解释器相关联。哪一个取决于它是如何安装的。你的与 OS X Python 2.7 解释器相关联,但你可以 为 brew 版本安装它(如果正确使用 pip 工具为 Python 安装而安装)。