Установите рабочий каталог для местоположения активного скрипта в SublimeREPL.

Я использую Sublime Text 3 с SublimeREPL для своих команд как в R, так и в Python. Всякий раз, когда SublimeREPL загружается, текущий рабочий каталог устанавливается в каталог установки Sublime Text. Это происходит как в Windows, так и в Mac OSX. Часто мне нужно запустить код из R или Python, который открывает файл, расположенный в той же папке, что и файл R или py, который я запускаю. В обычных обстоятельствах (т. е. без использования Sublime Text) это работает нормально, поскольку интерпретатор R или Python знает, что нужно искать в том же каталоге, где находится скрипт.

Однако с помощью SublimeREPL команды «передаются» в виде текста в SublimeREPL, поэтому SublimeREPL понятия не имеет, откуда взялась программа. В результате мне нужно явно указать местоположение файла, к которому я пытаюсь получить доступ, в каждой из моих программ, что немного громоздко, особенно если мои программы перемещаются (что они и делают).

Есть ли способ заставить SublimeREPL установить текущий рабочий каталог при загрузке в тот же каталог, что и текущий активный файл сценария? Это был бы хороший обходной путь, так как это означало бы просто перезапуск REPL, если бы я перешел на использование файла, расположенного в другом каталоге.

введите здесь описание изображения


person CaptainProg    schedule 28.10.2014    source источник
comment
Я только что установил чистую версию SublimeText3 и SublimeREPL в Ubuntu, и когда я запускаю SublimeREPL и пишу import os; os.getcwd(), он правильно показывает мой текущий каталог файлов. Другими словами, я не могу воспроизвести вашу проблему.   -  person Yasser Souri    schedule 06.11.2014


Ответы (1)


У меня был тот же вопрос, и я нашел ответ здесь.

Для Python и IPython в папке Packages/User создайте SublimeREPL/config/Python/Main.sublime-menu, где вы указываете "cwd": "$file_path" :

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

                    "children":[
                        {
                            "command": "repl_open",
                            "caption": "Python - Anaconda",
                            "id": "repl_python",
                            "mnemonic": "p",
                            "args": {
                                "type": "subprocess",
                                "encoding": "utf8",
                                "cmd": ["/path/to/Anaconda/python", "-i", "-u"],
                                "cwd": "$file_path",
                                "syntax": "Packages/Python/Python.tmLanguage",
                                "external_id": "python",
                                "extend_env": {"PYTHONIOENCODING": "utf-8"}
                            }
                        },
                        {
                            "command": "repl_open",
                            "caption": "IPython - Anaconda",
                            "id": "repl_python_ipython",
                            "mnemonic": "p",
                            "args": {
                                "type": "subprocess",
                                "encoding": "utf8",
                                "autocomplete_server": true,
                                "cmd": ["/path/to/Anaconda/python", "-u", "${packages}/SublimeREPL/config/Python/ipy_repl.py"],
                                "cwd": "$file_path",
                                "syntax": "Packages/Python/Python.tmLanguage",
                                "external_id": "python",
                                "extend_env": {
                                    "PYTHONIOENCODING": "utf-8",
                                    "SUBLIMEREPL_EDITOR": "$editor"
                                }
                            }
                        }
                    ]
                }
            ]
        }]
    }
]

Я думаю, для R это то же самое.

person desa    schedule 08.11.2014
comment
Пожалуйста, не копируйте и не вставляйте из других ответов, даже если вы ссылаетесь на них. Если ответ решает другой вопрос, вы должны пометить этот вопрос как дубликат или, по крайней мере, оставить ссылку на соответствующий ответ в комментарии. - person MattDMo; 25.01.2016
comment
У меня сработало не cwd: $file_path, как было предложено в ответе выше, а cwd: $folder. Вы можете найти подробное описание моей проблемы здесь: in-cwd" title="почему sublimerepl не импортирует модуль Python или не читает файл в cwd">stackoverflow.com/questions/45077749/ - person z33k; 13.07.2017