Как показать результат скрипта python в консоли при запуске из St editor?

Я новичок в Sublime Text, поэтому до сих пор не знаком с его внутренними элементами. Из того, что я мог сказать, проблема может быть связана с этой.

У меня есть скрипт python

var = raw_input("Enter something: ")
print "You entered ", var

который запрашивает ввод, ждет его, а затем печатает его в командной строке консоли windows.

Как сделать ST3 при "построении", чтобы показать результаты в окне консоли?

5 ответов


это действительно просто выдать команду, чтобы начать новый cmd.exe.

start cmd /K python main.py

посмотреть здесь дополнительные(древние)

на /k флаг "трубы" другие команды cmd.exe и работает, пока вы не выйдете из оболочки самостоятельно, полезно, когда вы хотите видеть следы.

флаг /C "передает" другие команды в cmd.exe и запускается до тех пор, пока программа python не завершится.

поэтому в вашем проекте-файле у вас должно быть что-то вроде это:

"build_systems": [
    {
        "name": "RunPY",
        "cmd": ["start", "cmd", "/K", "python", "main.py"],
        "shell": true,
        "working_dir": "<project_path>"
    },

]

пока мы на тему build_systems в Sublime я хотел бы рекомендовать плагин BuildSwitcher, он работает нормально на ST3, он просто не всегда замечает, когда вы добавили новую сборку в свой файл проекта. Это также означает, что вы должны установить плагин вручную для ST3.

С помощью этого плагина вы можете легко определить и запустить различные сборки всего несколькими нажатиями клавиш. Реальная экономия времени.


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

Легкий Путь

следующие работы просто отлично:

{
    "cmd": ["start", "cmd", "/k", "c:/python27/python.exe", "-u", "$file"],
    "selector": "source.python",
    "shell": true,
    "working_dir": "$file_dir"
}

Сохранить как Packages/User/Python_cmd.sublime-build выберите Tools -> Build System -> Python_cmd, и CtrlB.

start делает то, что он говорит, что это так, начните новый процесс, независимый от возвышенного текста. cmd is cmd.exe, интерпретатор командной строки Windows. The /k флаг сохраняет окно открытым (в новой командной строке) после запуска вашей программы, позволяя вам просматривать ее вывод, просматривать трассировки, запускать дополнительные команды и т. д. Если вам не нужна эта функциональность, измените ее на /c (как ниже), и cmd окно закроется, когда программа будет выполнена.

я тестировал его на XP и Win7, в и ST2 и ST3, и он отлично работает на всех из них без каких-либо изменений.


мое первоначальное решение:

во-первых, создать run_python.bat и хранить его в Packages/User каталог (доступен из Preferences -> Browse Packages... опции меню):

@echo off
c:\Python27\python.exe -u %1
pause

очевидно, отрегулируйте путь до python.exe если это по-другому для вас. Далее создайте Packages/User/Python_cmd.sublime-build следующего содержания:

{
    "cmd": ["start", "cmd", "/c", "run_python.bat", "$file"],
    "selector": "source.python",
    "shell": true,
    "working_dir": "$packages/User"
}

сохранить его, выберите Tools -> Build System -> Python_cmd, переключитесь на свою программу Python выше, хит CtrlB


SublimeREPL for-это плагин для SublimeText

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

установка

Install Package Control. http://wbond.net/sublime_packages/package_control
Install SublimeREPL
    Preferences | Package Control | Package Control: Install Package
    Choose SublimeREPL
Restart SublimeText2
Configure SublimeREPL (default settings in Preferences | Package Settings |
SublimeREPL | Settings - Default should be modified in Preferences |
Package Settings |SublimeREPL | Settings - User,
this way they will survive package upgrades!

Примечание документация:

ctrl+,, f означает: нажмите Ctrl и запятую, освободить всех, пресс Ф.

привязка клавиш выше используется для оценки в REPL

Если запрос SublimeText не может найти REPL для"язык", вам нужно открыть REPL по

Tools | SublimeREPL | Language

надеюсь, это поможет


вот вариант для OSX, на всякий случай это полезно для всех:

перейдите в инструменты - >система сборки - >новая система сборки...

{
    "cmd": ["/opt/X11/bin/xterm", "-e", "python -u \"$file\""],
    "selector": "source.python"
}

Вы можете найти более подробную информацию о синтаксисе здесь

сохраните его (например, с именем mytestbuild.sublime-build в каталоге, который дает вам SublimeText), переключитесь на файл Python, выберите систему сборки из Tools - >Build Systems - >mytestbuild и нажмите cmdB.

что будет откройте xterm и запустите код Python в окне xterm. Если вы хотите использовать терминал.app, вам может потребоваться использовать один из трюков от этот вопрос.


[ это решение показывает вывод в Sublime, но как текстовый файл(ы) автоматического обновления, показанный в другой панели ]

чтобы вывод был виден в Sublime как другой файл(ы), сделайте следующее:

  1. создать новую систему построить: Tools > Build Systems > New Build System...
  2. используйте следующую конфигурацию:

    {
        "cmd": ["python.exe", "$file", "1>", "$file_name.__STDOUT__.txt", "2>", "$file_name.__STDERR__.txt"],
        "selector": "source.python",
        "shell": true,
        "working_dir": "$file_dir"
    }
  1. для вашего файла Python выберите вышеуказанный файл конфигурации системы сборки: Tools > Build Systems > {your_new_build_system_filename}
  2. ctrl + b
  3. теперь рядом с файлом, например,"file.py" вы "file.__STDOUT__.py" и "file.__STDERR__.py" (для ошибок, если таковые есть)
  4. если вы разделите окно на 3 столбца или сетку, вы сразу увидите результат, без необходимости переключения панелей / окон