Ошибка SublimeREPL scala Та же ошибка, но существующее решение не устраняет проблему

При запуске SublimeREPL: SBT for opened folder у меня возникла та же проблема, что и в похожем вопросе, заданном ранее (OSError(2, 'No such file or directory')).

К сожалению, предложенное там решение не очень помогло.

Кто-нибудь будет достаточно любезен, чтобы дать некоторые подсказки относительно того, что здесь еще может быть не так?

В настоящее время я использую Ubuntu 12.04.

Моя конфигурация Main.sublime-menu выглядит следующим образом:

[
 {
    "id": "tools",
    "children":
    [{
        "caption": "SublimeREPL",
        "mnemonic": "r",
        "id": "SublimeREPL",
        "children":
        [
            {"caption": "Scala",
            "id": "Scala",

             "children":[
                {"command": "repl_open",
                 "caption": "scala REPL",
                 "id": "repl_scala",
                 "mnemonic": "s",
                 "args": {
                    "type": "subprocess",
                    "encoding": "utf8",
                    "external_id": "scala",
                    "cmd": {"linux": ["scala"],
                            "osx": ["scala"],
                            "windows": ["scala.bat", "-i"]},
                    "soft_quit": "\nexit\n",
                    "cwd": "$file_path",
                    "cmd_postfix": "\n", 
                    "extend_env": {"osx": {"EMACS": "1", "PATH": "{PATH}:/home/helluin/apps/sbt/bin"},
                                   "linux": {"EMACS": "1", "PATH": "{PATH}:/home/helluin/apps/sbt/bin/"},
                                   "windows": {"EMACS": "1"}},
                    "suppress_echo": false, 
                    "syntax": "Packages/Scala/Scala.tmLanguage"
                    }
                },
                {"command": "repl_open",
                 "caption": "SBT for opened folder",
                 "id": "repl_sbt",
                 "mnemonic": "b",
                 "args": {
                    "type": "subprocess",
                    "encoding": "utf8",
                    "external_id": "scala",
                    "cmd": {"linux": ["sbt"],
                            "osx": ["sbt"],
                            "windows": ["sbt"]},
                    "soft_quit": "\nexit\n",
                    "cwd": "$folder",
                    "cmd_postfix": "\n", 
                    "extend_env": {"osx": {"EMACS": "1", "PATH": "{PATH}:/usr/bin"},
                                   "linux": {"EMACS": "1", "PATH": "{PATH}:/usr/bin"},
                                   "windows": {"EMACS": "1"}},
                    "suppress_echo": false, 
                    "syntax": "Packages/Scala/Scala.tmLanguage"
                    }
                } 
            ]}
        ]
    }]
  }
]

Кроме того, системные пути scala и sbt определяются таким образом.

λ →  which scala
/usr/bin/scala
λ →  which sbt
/home/helluin/apps/sbt/bin/sbt

person helluin    schedule 15.10.2013    source источник


Ответы (1)


Вы перепутали пути. Пункт меню "caption": "scala REPL" имеет команду scala, но расширенный PATH — это /home/helluin/apps/sbt/bin. Элемент "caption": "SBT for opened folder" имеет команду sbt, а расширенный PATH — это /usr/bin. Вы должны переключить их.

В качестве альтернативы для Scala REPL сделайте первую строку команды:

"cmd": {"linux": ["/usr/bin/scala"],

(хотя /usr/bin уже должен быть в системе PATH). Для sbt REPL сделайте первую строку команды:

"cmd": {"linux": ["/home/helluin/apps/sbt/bin/sbt"],

и тогда вам не нужно беспокоиться о расширении этой конкретной переменной среды.

person MattDMo    schedule 15.10.2013