【问题标题】:How to run Python3 on Sublime Text 3 on macOS?如何在 macOS 上的 Sublime Text 3 上运行 Python3?
【发布时间】:2019-12-09 07:59:54
【问题描述】:

我创建了一个python3.sublime-build

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

然后$ which python3 返回,

/usr/local/bin/python3

可能与brew一起安装。

Command + B 返回此错误:

[Errno 20] Not a directory
[cmd: ['python3', '-u', '/path/to/dir/filename.py']]
[dir: /path/to/dir]
[path: /usr/local/bin/python]
[Finished]

查看了一些相关的posts,但无法解决。

我该如何解决这个问题?

【问题讨论】:

  • 尝试从构建系统中删除“路径”键。我没有看到这里记录的 sublimetext.com/docs/3/build_systems.html 而我有 a successful python3 build system 没有它。
  • path 是有效的(只要您使用shell_cmd 而不是cmd),但它会将 PATH 设置为您将字符串设置为的内容,在这里这是无效的。不过,使用env 而不是path(尽管env 是字典而不是字符串)通常是一个更好的主意来修改环境。如果您使用 path 并且构建以某种方式中断,则环境将被破坏和破坏(破坏 所有 构建),直到您重新启动 Sublime。
  • 问题是“路径”,我想你有一个解决办法。值得一提 - 您可能需要考虑从 Sublime 切换到 Visual Studio Code。只是一个想法......
  • 刚刚注意到我说的是倒过来; path 适用于 cmd 而不适用于 shell_cmd,反之亦然。 cmd 直接启动cmd 中的第一项,但shell_cmd 被传递给系统shell。所以使用pathshell_cmd 只会影响系统找到shell 的能力,而不影响shell 找到你要求它运行的东西的能力。对此感到抱歉。

标签: python python-3.x sublimetext3 sublimetext


【解决方案1】:

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

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

虽然 Python 似乎已经在您的系统 PATH 中,所以 path 键似乎没有必要。

【讨论】:

  • 或者,只需删除“路径”条目;)
  • 如果which python3 返回解释器的位置,则根本没有理由尝试修改路径,因为它已经设置好了。只需删除 path 即可解决问题(尽管之后您可能必须重新启动 Sublime,因为不加选择地使用 path 会破坏环境)
  • @OdatNurd 谢谢,你发表评论时我正在编辑 :)
  • @iz_ 是的,GMTA :)
【解决方案2】:

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

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

这导致了[Errno 20] Not a directory 问题,因为配置的路径解析为文件而不是目录。

在 macOS 上保存构建文件的位置:

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

【讨论】:

  • @Emma 你可能需要重启 Sublime 才能让它再次工作。当您使用path 时,它会将 Sublime 的系统 PATH 替换为您所说的,然后在构建完成时将其设置回来。如果构建完成并出现上述错误,它会跳过重置部分,这会使 Sublime 的 PATH 中断,直到您重新启动它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-06-28
  • 1970-01-01
  • 2014-03-01
  • 2023-03-07
  • 2014-08-10
  • 2018-03-22
  • 2017-10-28
相关资源
最近更新 更多