1

如果我在控制台中运行以下命令,它会输出“/usr/bin:/bin:/usr/sbin:/sbin”:

import os  
os.environ['PATH']

但在其他任何地方 PATH 都是正确的。在两者中~/.MacOSX/environment.plist,如果我跑步,launchctl getenv PATH我会得到正确的路径。

这使我无法运行 CoffeeCompile。有什么想法可以解决这个问题吗?

4

2 回答 2

1

我遇到了同样的问题,并没有找到传递正确路径的方法。但是,我有一个解决方法:只要您从 shell 打开 Sublime Text,它似乎就可以使用正确的 PATH 。换句话说:

  1. 按照这个提示创建 Sublime Text 的 shell 快捷方式。这是可选的,但会派上用场。
  2. 按照此线程的答案中所述创建一个工作流,使用 shell 脚本打开 Sublime Text(使用上面创建的subl命令,或直接使用)。这样您就可以从 Dock 中打开 ST。

我希望这会有所帮助。

于 2013-10-10T20:37:39.250 回答
0

在 Sublime Text 应用程序包目录中创建一个名为“Sublime Text.sh”的空文本文件

/Applications/Sublime\ Text.app/Contents/MacOS

在文本编辑器中打开 Sublime Text.sh 并输入以下内容:

#!/bin/sh

. ~/.bash_profile

logger "`dirname \"$0\"`/Sublime Text"

exec "`dirname \"$0\"`/Sublime Text" $@

在终端设置shell脚本eclipse.sh的可执行标志,即:

chmod +x /Applications/Sublime\ Text.app/Contents/MacOS/Sublime\ Text.sh

打开 Sublime Text.app Info.plist 并将键 CFBundleExecutable 的值从 Sublime Text 更改为 Sublime Text.sh。

MacOS X 不会自动检测到 Sublime Text.app 的 Info.plist 已更改。因此,您需要使用 lsregister 命令强制更新终端中的 LaunchService 数据库:

/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -v -f /Applications/eclipse/Sublime Text.app

下次从 Dock 或 Finder 启动 Sublime Text.app 时,应该设置环境变量。

这将使得当您打开 Sublime Text.app 时,它将运行您的 shell 脚本而不是 Sublime Text 可执行文件。

然后,您的 shell 脚本执行 .bash_profile(设置路径)并使用该路径启动 Sublime Text 可执行文件。

于 2014-02-10T00:17:58.310 回答