【问题标题】:Fix substitution of “shell_cmd” on Mac OSX in Sublime Text 3修复 Sublime Text 3 中 Mac OSX 上“shell_cmd”的替换
【发布时间】:2016-03-21 10:01:28
【问题描述】:

我在项目设置中指定的构建系统有问题。目前我的项目设置如下所示

{
    "build_systems":
    [
        {
            "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
            "name": "Anaconda Python Builder",
            "selector": "source.python",
            "shell_cmd": "$project_path/bin/python -u $file"
        }
    ],
    "folders":
    [
        {
            "file_exclude_patterns":
            [
                "pip-selfcheck.json",
                "pyvenv.cfg"
            ],
            "folder_exclude_patterns":
            [
                "lib",
                "include",
                "bin"
            ],
            "follow_symlinks": true,
            "path": "."
        }
    ],
    "settings":
    {
        "binary_file_patterns":
        [
            "*.jpg",
            "*.jpeg",
            "*.png",
            "*.gif",
            "*.ttf",
            "*.tga",
            "*.dds",
            "*.ico",
            "*.eot",
            "*.pdf",
            "*.swf",
            "*.jar",
            "*.zip",
            "client/node_modules/**",
            "data/**"
        ]
    }
}

实际问题出在一行:

"shell_cmd": "$project_path/bin/python -u $file"

每次我关闭 sublime 并重新打开它时,我的 shell_cmd 都会被这个替换

"shell_cmd": "\"python\" -u \"$file\""

我的构建失败了。有没有办法解决这个问题?我该怎么做才能禁用此自动替换?

  • Mac OS X 10.11.3
  • 崇高文本 3103

【问题讨论】:

  • 愚蠢的问题,但我假设您在关闭 Sublime 之前保存了您的项目 (⌘-S)?
  • @MattDMo 是的,没错。我刚刚再次检查,实际打开 sublime 时会发生替换。
  • 我建议在 Github 上使用 opening an issue。以我的经验,该软件包的作者反应迅速,并且一直在推出新版本,因此这可能只是一种回归。不过,在打开问题之前,请确保您使用命令面板中的Package Control: Upgrade Package 选项运行最新版本。
  • @MattDMo 你认为它与包装有关吗?本身不崇高?
  • 是的,我认为这肯定与包裹有关。 Sublime 不应该编辑项目文件。

标签: sublimetext3 sublimetext sublime-anaconda


【解决方案1】:

我已经在 Anaconda 的问题跟踪器中回答了这个问题,但我会在这里为遇到类似问题的任何其他用户回答这个问题。

Anaconda 本身使用该特定的构建系统,这就是为什么它被称为“Anaconda Python Builder”的原因,它会将“shell_cmd”与您用作“python_interpreter”设置的任何配置更新到您的 anaconda 的设置文件中(一般、用户或每个项目)。

如果您对构建系统有特定需求,您应该使用自己的选项创建一个新的构建条目并坚持使用该选项。 Anaconda 的构建系统为需要使用其配置的 Python 解释器而不是嵌入式 ST3 解释器的用户提供了便利。

【讨论】:

    【解决方案2】:

    我通过在设置字典中添加python_interpreter: 'full/path/to/python' 解决了这个问题,无需自定义构建系统。 Anaconda Python Builder shell_cmd 中的 python 部分被替换为它。

    【讨论】:

      猜你喜欢
      • 2018-03-22
      • 2016-04-12
      • 2014-06-09
      • 2015-05-26
      • 1970-01-01
      • 1970-01-01
      • 2013-07-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多