你需要准确地从 Sublime Text 中找出你在调用什么。此解决方案仅适用于其他人所说的是真的并且 Sublime Text 正在调用另一个与您从 shell 调用的不同的 python 解释器的情况。
步骤1
找出 Sublime Text 调用的快速而肮脏的方法:
- 让 Python 成为您的构建系统。在菜单栏上选择:工具 > 构建系统 > Python
- 创建新文件 (cmd+n)
- 构建 (cmd+b)
这应该会给你这样的错误消息:
/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python: can't find '__main__' module in ''
[Finished in 0.1s with exit code 1]
[shell_cmd: python -u ""]
[dir: /Users/someuser/Downloads]
[path: /usr/bin:/bin:/usr/sbin:/sbin]
第一行为您提供了 Sublime Text 正在使用的 python 解释器的路径。
第2步
接下来,您应该找出您在命令行中调用的内容:
% which python
/usr/local/bin/python
使用上面的信息,您可以通过以下方式找到 /usr/local/bin/python 的位置:
% ls -la /usr/local/bin/python
lrwxr-xr-x 1 someuser wheel 33 Jul 29 23:14 /usr/local/bin/python@ -> ../Cellar/python/2.7.5/bin/python
如果两条路径相同,则停止:我的解决方案不适用于您的情况。
第 3 步
如果这两个路径不同,那么您将需要专门使用 sublime text 正在调用的 python 解释器的路径:
% echo 'print "hello"' | /usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python
hello
或者,如果您喜欢只使用 python 在命令行中调用,那么您可以更改由“which python”提供的链接(例如,/usr/local/bin)。
例如(请勿复制和粘贴 - 请了解路径的来源和原因):
ln -s PATH_TO_YOUR_PYTHON /usr/local/bin/python
有关在 OSX 上更改默认 python 的更好讨论,请参阅“如何更改在 Snow Leopard 中使用的 Python 版本? ”。
另一件事——如果你想从 Sublime Text 运行不同的 python,那么看看这个。