Как запустить файл / скрипт Python из возвышенного текста 3 на CMD в Windows 10? - PullRequest
0 голосов
/ 26 октября 2019

Я искал в интернете взад и вперёд решение этой проблемы. Я понимаю, что есть SublimeREPL, который я могу легко использовать для правильного запуска кода Python в возвышенном тексте 3. Однако этого мне недостаточно. Я хочу запустить свой файл python на cmd из возвышенного текста 3.

Для меня есть много причин. Самая большая причина в том, что мне нужно часто тестировать свои файлы на python, и я не хочу теснить свое возвышенное текстовое рабочее пространство тысячами вкладок. Есть несколько других причин, но на данный момент я просто хочу решения. Почти везде в Интернете говорится только о SublimeREPL, поэтому я не смог найти решение.

Я также понимаю, что могу использовать cmd вручную, перейдя непосредственно к файлу и запустив его там, но егоболь в спине, чтобы продолжать переключаться на cmd, а затем снова и снова к возвышенному тексту.

Поэтому я ищу изящное решение, где я могу запустить свой файл python из возвышенного текста 3 в cmd. Любая помощь очень ценится.

Я использую Python 3.7.3

1 Ответ

1 голос
/ 30 октября 2019

Практическое правило для систем сборки в Sublime Text: если вы можете создать командную строку, которая при выполнении вручную в терминале / консоли даст вам нужный эффект (и эта команда не требует интерактивноговвод), затем вы можете превратить его в систему сборки.

В этом случае вы хотите создать новое окно cmd и сделать что-то внутри него;Таким образом, тот факт, что вы используете Sublime, не интересен в общей схеме знания того, как это сделать, и, возможно, поэтому ваш поиск не дал результатов.

В Windows вы можете использоватьТерминальная команда типа cmd /s /c something сообщает Windows cmd.exe, что она должна выполнить команду something. В вашем случае вы хотите использовать Python для выполнения программы, так что это может выглядеть примерно так, чтобы Python выполнял my_file.py.

cmd /s /c python my_file.py

Однако, если вы делаете это в существующей командной строке,результат - просто запустить программу в текущем окне;то есть вы говорите cmd выполнить команду, но она все еще выполняется в текущем окне, что не то, что вам нужно.

Чтобы запустить программу в новом окне, вам необходимо использоватькоманда start, которая запускает новую программу. Общий формат этого будет выглядеть примерно так:

start "" cmd /s /c python my_file.py

Это говорит start о запуске нового экземпляра cmd, о котором вы говорите, чтобы запустить программу, так что теперь программа Pythonработает в своем собственном окне.

Есть некоторые общие проблемы с этим;самая большая из них заключается в том, что как только cmd заканчивает выполнение команды, которую вы ей даете, она завершается. Аналогично, Python также завершает работу после завершения программы. В результате, как только ваша программа будет завершена, окно немедленно исчезнет, ​​прежде чем вы сможете увидеть, что она сделала.

Вы можете добавить -i к команде python, чтобы она стала интерактивной. , но тогда вам нужно будет взаимодействовать с внутренним Python python, чтобы заставить его выйти и закрыть окно, что, как вам кажется, не нужно делать шаг.

В этом случае вам нужно изменить команду, которую вы даете cmd, чтобы она также ждала, пока вы не нажмете клавишу.

В общем, пример этого может выглядеть примерно так:1034 * file:

{
    "shell_cmd": "start \"\" cmd /s /c \"python -u \"$file\" & pause\"",
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python",

    "env": {"PYTHONIOENCODING": "utf-8"},
}

Это внутренняя версия Python.sublime-build, модифицированная для расширения команды, как описано выше. Чтобы это работало, вам нужно иметь возможность ввести python на терминале и запустить его интерпретатор Python. Если это не так, вам нужно соответствующим образом изменить переменную окружения PATH.

Если вы используете Python 3, вам может потребоваться заменить python на python3 или аналогичный в команде, чтобычто cmd знает, что выполнить.

...