如何在macOS上的Sublime Text 3上运行Python 3?

如何在macOS上的Sublime Text 3上运行Python 3?,python,python-3.x,sublimetext3,sublimetext,Python,Python 3.x,Sublimetext3,Sublimetext,我已经创建了一个python3.sublime build: { "path": "/usr/local/bin/python", "cmd": ["python3", "-u", "$file"], "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",

我已经创建了一个
python3.sublime build

{
  "path": "/usr/local/bin/python",
  "cmd": ["python3", "-u", "$file"],
  "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
  "selector": "source.python"
}
和python3返回的
$

/usr/local/bin/python3
可能与brew一起安装

命令+B返回此错误:

[Errno 20] Not a directory
[cmd: ['python3', '-u', '/path/to/dir/filename.py']]
[dir: /path/to/dir]
[path: /usr/local/bin/python]
[Finished]
已经调查了一些相关问题,但无法解决

如何解决这个问题?

IIRC(我有一段时间没有使用Sublime),
path
应该是目录的路径,而不是可执行文件的路径。请尝试以下方法:

{
  "path": "/usr/local/bin/",
  "cmd": ["python3", "-u", "$file"],
  "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
  "selector": "source.python"
}
但是,Python似乎已经在您的系统路径中,因此
路径
键似乎没有必要。

从构建系统中删除“PATH”键。这不是必需的

{
  "cmd": ["python3", "-u", "$file"],
  "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
  "selector": "source.python"
}
这导致
[Errno 20]不是目录问题,因为配置的路径解析为文件而不是目录

在macOS上保存生成文件的位置:

~/Library/Application Support/Sublime Text 3/Packages/User/python3.sublime-build

尝试从生成系统中删除“路径”键。我在这里看不到文档,我没有它。
path
是有效的(只要您使用
shell\u cmd
而不是
cmd
),但它将路径设置为您设置字符串的确切值,而在这里这是无效的。通常最好使用
env
而不是
path
(虽然
env
是一个字典而不是字符串)来修改环境。如果您使用
path
并且构建以某些方式中断,则环境将被破坏和中断(中断所有构建),直到您重新启动Sublime。问题是“path”,我认为您已经找到了解决方法。值得一提的是,您可能需要考虑从崇高到VisualStudio代码的切换。只是一个想法…只是注意到我在上面倒着说
path
适用于
cmd
,而不适用于
shell\u cmd
,反之亦然
cmd
直接启动
cmd
中的第一项,但是
shell\u cmd
被传递给系统shell。因此,将
path
shell_cmd
一起使用只会影响系统查找shell的能力,而不会影响shell查找您要求它运行的内容的能力。很抱歉。或者,删除“路径”条目;)如果
哪个python3
返回解释器的位置,那么根本没有理由尝试修改路径,因为它已经设置好了。只要删除
路径
就可以解决问题(尽管你可能不得不在事后重新启动升华,因为不加选择地使用
路径
会破坏环境)@OdatNurd谢谢,你发表评论时我正在编辑:)@iz_u是的,GMTA:)@Emma你可能需要重新启动升华才能让它重新工作。当您使用
path
时,它会将升华的系统路径替换为您所说的路径,然后在构建完成时将其设置回原位。如果构建完成时出现类似上面的错误,它会跳过重置部分,这会导致升华路径中断,直到重新启动它。