Python 3.4在Sublime Text 3上的使用

31

我按照以下步骤在Sublime Text 3上运行Python 3。

选择菜单 Tools > Build > New Build System,然后输入以下内容:

{
"cmd": ["python3", "$file"]
, "selector": "source.python"
, "file_regex": "file \"(...*?)\", line ([0-9]+)"
}

之后,我将它保存到以下(仅适用于Mac的)目录中:~/Library/Application Support/Sublime Text 3/Packages/User

但当我在Sublime中尝试以Python 3运行我的代码时,我遇到了此错误:

[Errno 2] No such file or directory: 'python3'

python3 应该在系统路径中。 - Kenly
请查看我已经发布的答案这里 - Daniel
3个回答

40

你需要提供 Python3 的完整路径,因为 Sublime Text 不会读取你的 ~/.bash_profile 文件。打开 Terminal,键入 which python3,并使用该完整路径:

{
  "cmd": ["path/to/python3", "$file"], 
  "selector": "source.python", 
  "file_regex": "file \"(...*?)\", line ([0-9]+)"
}

2
这个“Sublime Text不读取你的~/.bash_profile文件”的解释解决了我一堆问题。本应该意识到,但我没有。非常清晰明了。谢谢! - jwpfox
当你将 "path_to_python" 粘贴到上述代码中并将其保存为一个构建系统文件时, 1.) 别忘了给它一个容易记住的名称(例如 Python3)。 2.) 返回到构建系统并切换到你刚创建的那个构建系统。一切应该都能正常工作。 - Trapp

25

这是我一直在使用的代码片段。它与Andrew的解决方案略有不同,可以通过查看UNIX环境的PATH设置(类似于您在Python shell脚本中执行相同操作的方式;例如:'#! /usr/bin/env python3')动态定位python3。

这个代码片段还使用了"shell_cmd"而不是sublime-text-3似乎改用的"cmd"。

{
    "shell_cmd": "/usr/bin/env python3 ${file}",
    "selector": "source.python",
    "file_regex": "^(...*?):([0-9]*):?([0-9]*)",
    "working_dir": "${file_path}",
}

我的存储位置是 ".../Packages/User/Python3.sublime-build"。希望这对你有所帮助。=:)


1
我发现这非常有用。 - james-see
需要在文件路径中包含空格时使用 '' 将其括起来,例如 '${file}'。"${file_path}" 也可能需要这样做。如果 Python3 的位置包含空格,则可能会出现问题。该死的文件路径中的空格。 - P i
1
我尝试了 which python3 命令,它显示我的 python3 安装在 /usr/bin/python3 目录下。其余部分都正常工作。 - Henry J
为什么输出是:/usr/local/opt/python/bin/python3.7,而不是我选择的:/usr/local/bin/python3.7? - Galapagos

-1
感谢您的提问。我几天前开始学习Python,也遇到了您所遇到的同样问题。就像Andrew上面说的那样,这是一个“路径问题”。我想分享一下我用来在Sublime3上获取Python3的代码。
对于MacOS用户:
{
"cmd": ["/usr/local/bin/python3", "-u", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python",
"encoding": "utf8",
"path": "/usr/local/Frameworks/Python.framework/Versions/3.3/bin/"
}

并将文件保存为Python3.sublime-build。 我强烈推荐新手阅读《Python简明教程》这本书,对我的回答有很大的帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接