【问题标题】:Getting PyDev to recognize the correct Python Interpreter on Eclipse under OS X Lion让 PyDev 在 OS X Lion 下的 Eclipse 上识别正确的 Python 解释器
【发布时间】:2012-02-27 05:27:48
【问题描述】:

我在运行 OSX Lion 的 mac 上安装了两个版本的 python。第一个是 OSX 附带的默认 python 版本,可以在 /usr/bin/python 中找到。我要使用的版本是我从 python.org 下载的版本,它安装在 /Library/Frameworks/Python.framework/Versions/2.7/bin/python 中。我想使用 Eclipse 和 PyDev,使用 python.org 版本作为解释器。因此,在 Eclipse 中,我转到首选项并将 /Library/Frameworks/Python.framework/Versions/2.7/bin/python 中安装的版本设置为解释器。

在终端窗口中,如果我输入: $哪个蟒蛇

我得到“/Library/Frameworks/Python.framework/Versions/2.7/bin/python”,因为我相应地设置了我的 $PATH(修改 .bash_profile 以永久这样做)

但如果我在 Eclipse 中运行以下简单脚本:

import os
os.system("which python")

脚本的输出是“/usr/bin/python”

按照其他类似帖子的建议,我尝试过的事情:

  1. 尝试删除并重新添加解释器位置
  2. 尝试将 /Library/.../package-sites 添加到 PYTHONPATH

为什么 eclipse 不使用我明确告诉它使用的解释器?对此问题的任何帮助将不胜感激!

【问题讨论】:

    标签: python eclipse osx-lion interpreter pydev


    【解决方案1】:

    问题在于 os.system('which python') 将在路径中搜索 python,而不是您当前正在运行的那个(因此,它的输出是正确的)。

    您想要使用/检查的是 sys.executable(此属性将指向您当前正在运行的可执行文件)。

    至于 wxPython 问题,您遇到了哪个错误? (可能是stackoverflow思想中的另一个问题)。

    【讨论】:

    • 谢谢,法比奥。 sys.executable 确实确认我在终端环境和 Eclipse 中都运行了相同的 python。现在我知道我在使用 wxPython 时遇到的错误是由于它没有在 32 位模式下运行。我将发布另一个关于让 PyDev 选择 32 位模式而不是 64 位模式的问题。 (当我从终端运行时,我可以将 python2.7-32 指定为“执行程序”,只需要了解如何在 Eclipse 中执行相同的操作)。再次感谢。
    【解决方案2】:

    我认为 Eclipse 正在运行正确的 python。在您的代码中,当在 eclipse 下运行时,python 没有找到正在运行的 python。试试

    import sys
    print sys.version
    

    这里的问题是,从 desktop/dock/folder 运行 GUI 应用程序不会加载您的 .bash_profile,因此 which python 找不到您对 PATH 的更改。要更改 GUI 应用程序的路径,您需要编辑 ~/.MacOSX/environment.plist

    【讨论】:

    • 感谢您的回复。我按照你的建议做了,但 Eclipse 仍然没有使用正确的解释器。
    • 感谢您的回复。我按照你的建议做了,但 Eclipse 仍然没有使用正确的解释器。我从命令行和 Eclipse 中都运行了 import sys,print sys.version,但输出不一样。 Eclipse 显示 2.7.2,终端显示 2.7.1。我想使用 2.7.1,这是我在 PyDev 中指向的解释器。我还创建了 ~/MacOSX/environment.plist 并添加了路径修改,然后重试了上述内容。这很令人困惑。
    • 有趣 - 在我的 Lion 中 /usr/bin/python 是 2.7.1,而来自 python.org 的最新版本是 2.7.2
    • 是的,对不起。在我的评论中写它们时,我把它们倒退了。这对我很重要的全部原因是让 wxPython 工作。 wxPython 不能与 Eclipse 一起工作,但可以在命令行上工作。而且我坚信我已正确配置 eclipse 以使用与终端相同的版本(python2.7_32)。所以我的信念是,如果我能让 Eclipse 使用与终端相同的解释器,我的问题就会得到解决。 Vim 很棒,所以我现在可能会远离 Eclipse 路线。再次感谢您的见解。
    【解决方案3】:

    我同意马克的观点。 sys.version 将是 eclipse 用来运行你的代码的。 os.system("which python") 将是在运行代码时 Eclipse 转发的 PATH 中找到的 python。也许如果你使用 PATH 调整,你也应该为在 Eclipse 中运行代码设置环境变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-02
      • 1970-01-01
      • 2012-03-03
      • 2011-10-09
      • 1970-01-01
      • 2012-04-05
      • 1970-01-01
      • 2012-01-07
      相关资源
      最近更新 更多