我想构建一个 python 文件,但出现以下错误:
/bin/bash: python: command not found
原因是我使用的是 zsh 而不是 bash。那么如何让Sublime看
/bin/zsh
呢?
这表明您的路径不正确,也不是您通常使用的 shell。在 OSX 的情况下,GUI 应用程序的路径是通过与终端程序不同的方式设置的(您根据上面问题中的评论知道)。
无论如何,为了回答你的问题(并供将来参考),Sublime 中的
exec
命令用于执行包括构建系统在内的任务,它指定通过 bash 执行事情。
使用 PackageResourceViewer,您可以从默认包中提取文件
exec.py
,并将其对“/bin/bash”的使用修改为“/bin/zsh”(或您想要的任何其他 shell)。
[编辑]
虽然上面的方法可行,但当您覆盖像这样的包中的文件时,您的覆盖将永远保留。也就是说,如果较新版本的 Sublime 包含具有错误修复或更新功能的不同版本
exec.py
,您将看不到它们,因为您已经覆盖了该文件。
因此需要记住的是,如果您选择这条路线,您就有责任始终使您的覆盖与当前发布的版本保持同步。当发现您覆盖了该文件时,执行问题的错误报告也可能会被置若罔闻或导致流泪。
如果您只需要从 sublime 打开 zsh shell 而不是默认的 bash shell,那么有一种更简单的方法可以做到这一点。在 OSX/Mac 上,打开首选项 -> 包设置 -> 终端视图 -> 调色板命令。将 /bin/bash 更改为 /bin/zsh,如下所示。
{
"args" : {"title": "Terminal (bash)", "cmd": "/bin/zsh -l"},
},
这适用于 Sublime Text 3。尚未测试较低版本。
希望这有帮助! 干杯!!
它在莫哈韦沙漠上对我来说效果很好。
sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/bin
我在尝试通过构建系统运行 python 脚本时遇到了类似的问题。我的错误是
ModuleNotFoundError
。问题是 sublime (ST4) 默认使用 bash
shell 来运行其 shell 命令(source)。这意味着 ST4 很可能在终端 (PATH
) 所看到的 zsh
上看不到相同的 python 可执行文件。在你的例子中,它根本没有看到它,因为 PATH
是不同的。
如果您将 bash 配置文件 (
~/.bash_profile
) 修改为具有与 PATH
和 ~/.zprofile
中类似的 ~/.zshrc
分配,则应该可以解决该问题。这基本上涉及将这两个 z 配置文件中的所有内容复制到一个 bash 配置文件中。像 export PATH="[path to executable]:$PATH"
这样的行应该放在 .bash_profile
的最末尾,因为这些行前面带有现有的 PATH
变量,并且当您尝试运行命令时会先进行搜索。