SublimeREPL 不识别 python 库

SublimeREPL doesn`t recognize python libs

我正在尝试使用 SublimeREPL 运行 python 来自 Sublime Text 2 的代码。

但是当我从 Sublime 调用一个包时,Python returns 一条消息说没有包。 例如

from facebookads.session import FacebookSession 
ImportError: No module named facebookads.session

如果我在终端中从 python 导入,这工作正常。

当我从 sublimeREPL 启动 python 时,它说:

Python 2.7.6 (default, Sep  9 2014, 15:04:36) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin

当我从终端启动 Python 时(我在 运行 上 OS X Yosemite)

Python 2.7.6 (default, Jan 11 2014, 11:50:52) 
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.2.79)] on darwin

怎么了? 为什么默认日期会有这种差异?

编辑

如果我运行

>>> import sys
>>> sys.executable

在 SublimeREPL 上我得到这个:

'/usr/bin/python'

在终端上我得到这个:

'/usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python'

我更改了 SublimeREPL 的用户设置

{
    "default_extend_env": {"PATH": "/usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python:{PATH}"}
}

而且我仍然得到相同的结果。 SublimeREPL 没有更改解释器。

EDIT2

当我运行

ls -al /usr/local/bin/python

我明白了

lrwxr-xr-x  1 filipeferminiano  admin  33 Jan 11  2014 /usr/local/bin/python -> ../Cellar/python/2.7.6/bin/python

我试过了:

brew link python

但它返回:

/usr/local/bin/brew: /usr/local/Library/brew.rb: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby: bad interpreter: No such file or directory
/usr/local/bin/brew: line 21: /usr/local/Library/brew.rb: Undefined error: 0

我又试了一次:

ls -al /usr/local/bin/python

得到与之前相同的结果

问题是您使用了两个不同的解释器。您可以通过 运行ning 以下 SublimeREPL 中的行来检查它,并从控制台解释您 运行(路径会有所不同):

>>> import sys
>>> sys.executable
'/usr/local/opt/python/bin/python'

如果值不同,您应该更改 SublimeREPL 设置以指向正确的解释器(与您在控制台 运行 Python 时得到的相同)。实现它的一种方法是修改 SublimeREPL 使用的 PATH 变量。转到 Preferences -> Package Settings -> SublimeREPL -> Settings - User 并将你想要的解释器的目录添加到 default_extend_env 设置(不要忘记从末尾删除 python )。使用我示例中的解释器,它看起来像这样:

{
    "default_extend_env": {"PATH": "/usr/local/opt/python/bin/:{PATH}"}
}

但更好的方法是使用 virtualenv to manage your Python environments. You can start interpreter for proper environment by executing "SublimeREPL: Python - virtualenv" instead of "SublimeREPL: Python". See documentation