sublimetext3sublimetextsublime-anaconda

Fix substitution of “shell_cmd” on Mac OSX in Sublime Text 3


I have a problem with my build system specified in project settings. Currently my project settings look like this

{
    "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/**"
        ]
    }
}

The actual problem problem is in the line:

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

Every time I close sublime and reopen it my shell_cmd gets substituted with this

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

Which fails my build. Is there a way to fix this problem? What do I do to disable this automatic substitution?


Solution

  • I already answered this question in the Anaconda's issues tracker but I will do it here for any other user that lands in this question with a similar problem.

    That specific build system is used by Anaconda itself and that is why it is called "Anaconda Python Builder", it will update the "shell_cmd" with anything that you used as configuration for your "python_interpreter" setting into your anaconda's settings file (general, user or per project).

    If you have specific needs for your build system, you should create a new build entry with your own options and stick to that one. Anaconda's build system is a convenience for users that need to use their configured Python interpreter instead of the embedded ST3 one.