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。
我正在尝试使用 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。