我尝试使用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
从之前得到了相同的结果
答案 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。