OS X Sublime Text3 使用 zsh shell

问题描述 投票:0回答:4

我想构建一个 python 文件,但出现以下错误:

/bin/bash: python: command not found

原因是我使用的是 zsh 而不是 bash。那么如何让Sublime看

/bin/zsh
呢?

bash macos sublimetext3 oh-my-zsh
4个回答
6
投票

这表明您的路径不正确,也不是您通常使用的 shell。在 OSX 的情况下,GUI 应用程序的路径是通过与终端程序不同的方式设置的(您根据上面问题中的评论知道)。

无论如何,为了回答你的问题(并供将来参考),Sublime 中的

exec
命令用于执行包括构建系统在内的任务,它指定通过 bash 执行事情。

使用 PackageResourceViewer,您可以从默认包中提取文件

exec.py
,并将其对“/bin/bash”的使用修改为“/bin/zsh”(或您想要的任何其他 shell)。

[编辑]

虽然上面的方法可行,但当您覆盖像这样的包中的文件时,您的覆盖将永远保留。也就是说,如果较新版本的 Sublime 包含具有错误修复或更新功能的不同版本

exec.py
,您将看不到它们,因为您已经覆盖了该文件。

因此需要记住的是,如果您选择这条路线,您就有责任始终使您的覆盖与当前发布的版本保持同步。当发现您覆盖了该文件时,执行问题的错误报告也可能会被置若罔闻或导致流泪。


2
投票

如果您只需要从 sublime 打开 zsh shell 而不是默认的 bash shell,那么有一种更简单的方法可以做到这一点。在 OSX/Mac 上,打开首选项 -> 包设置 -> 终端视图 -> 调色板命令。将 /bin/bash 更改为 /bin/zsh,如下所示。

{
    "args"   : {"title": "Terminal (bash)", "cmd": "/bin/zsh -l"},
},

这适用于 Sublime Text 3。尚未测试较低版本。

希望这有帮助! 干杯!!


0
投票

它在莫哈韦沙漠上对我来说效果很好。

sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/bin

0
投票

我在尝试通过构建系统运行 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
变量,并且当您尝试运行命令时会先进行搜索。

© www.soinside.com 2019 - 2024. All rights reserved.