SublimeREPL不识别python库

时间:2015-08-08 13:30:09

标签: python sublimetext2 sublimerepl

我尝试使用SublimeREPL从Sublime Text 2运行python代码。

但是当我从Sublime调用一个包时,Python会返回一条没有包的消息。 e.g。

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

从之前得到了相同的结果

1 个答案:

答案 0 :(得分:1)

问题在于您使用了两种不同的口译员。您可以通过在SublimeREPL中运行以下行来检查它,并从控制台运行解释器(路径将是不同的):

import "io/ioutil"
import "testing"
import "fmt"

func TestSTDIN(t *testing.T) {
    bytes, err := ioutil.ReadAll(os.Stdin)

    if err != nil {
        t.Fatal(err)
    }

    fmt.Println(string(bytes))
}

如果值不同,则应更改SublimeREPL设置以指向正确的解释器(与从控制台运行Python时相同)。实现它的一种方法是修改SublimeREPL使用的PATH变量。转到首选项 - >包装设置 - > SublimeREPL - >设置 - 将您想要的口译员的用户和前置目录设置为>>> import sys >>> sys.executable '/usr/local/opt/python/bin/python' 设置(不要忘记从最后删除default_extend_env)。使用我的示例中的解释器,它看起来像这样:

python

但更好的方法是使用virtualenv来管理Python环境。您可以通过执行" SublimeREPL:Python - virtualenv"来启动解释器以获得适当的环境。而不是" SublimeREPL:Python"。请参阅documentation