Как запустить код Python из Sublime Text 2?

309

Я хочу установить полную Python IDE в Sublime Text 2.

Я хочу знать, как запустить код Python из редактора. Это сделано с помощью системы сборки? Как мне это сделать ?

нео
источник

Ответы:

372

Сервис -> Построить систему -> (выбрать) Python затем:

Бежать:

      Tools -> Build

      -or-

      Ctrl + B

      CMD + B  (OSX)

Это запустит ваш файл в консоли, которая должна находиться внизу редактора.

Остановиться:

       Ctrl + Break or Tools -> Cancel Build

       Fn + C (OSX)

Вы можете узнать, где находится ваш Breakключ, здесь: http://en.wikipedia.org/wiki/Break_key .

Примечание: CTRL + Cбудет НЕ работать.

Что делать, когда Ctrl + Breakне работает:

Перейти к:

Настройки -> Привязки клавиш - Пользователь

и вставьте строку ниже:

{"keys": ["ctrl+shift+c"], "command": "exec", "args": {"kill": true} } 

Теперь вы можете использовать ctrl+shift+cвместоCTRL+BREAK

matiit
источник
9
возвышенный текст также может «автоматически определять» язык. Так что у меня получилось просто CTRL + B
Алексис
4
Убедитесь, что pythonу вас PATH... установщик Windows, похоже, не делает этого
автоматически
2
как вы перестаете запускать программу (python)?
Ib33X
3
Клавиша разрыва моей клавиатуры выглядит как «Pause / Break», поэтому для остановки процесса я также добавил{"keys": ["pause"], "command": "exec", "args": {"kill": true} }
ледяной
3
Наличие строки {"keys": ["ctrl+shift+c"], "command": "exec", "args": {"kill": true} }в привязках клавиш пользователя и использование ctrl+shift+cотпечатков, что сборка выполняется, [Cancelled]пока программа еще выполняется.
Деви
56

В Mac OS X сохраните файл с расширением .py. Нажмите + B. Он работает в окне ниже.

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

bobobobo
источник
55

Изменить% APPDATA% \ Sublime Text 2 \ Python \ Python.sublime-build

Изменить содержание на:

{
    "cmd": ["C:\\python27\\python.exe", "-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python"
}

замените часть "c: \ python27" на любую версию python, имеющуюся в вашей системе.

PPy
источник
3
Обратите внимание на двойную косую черту в пути, иначе Sublime не узнает ее!
Энрико
6
Единственная прямая косая черта также работает вместо двойной обратной косой черты в Windows: «C: /Python27/python.exe» (в Linux и OSX)
Дилан Хогг,
7
Для меня путь был% APPDATA% \ Sublime Text 2 \ Packages \ Python \ Python.sublime-build
aultimus
5
Кажется, я не вижу папку Python в Sublime Text 3
HoKy22
44

Для запуска нажмите CtrlB(ответ matiit )

Но когда CtrlB не работает , Sublime Text, вероятно, не может найти интерпретатор Python. При попытке запустить вашу программу просмотрите журнал и найдите ссылку на Python в пути.

[cmd:  [u'python', u'-u', u'C:\\scripts\\test.py']]
[path: ...;C:\Python27 32bit;...]

Дело в том, что он пытается запустить python через командную строку, cmd выглядит так:

python -u C:\scripts\test.py

Если вы не можете запустить python из cmd, Sublime Text тоже не сможет.
(Попробуйте сами в cmd, введите в нем python и запустите его, должна появиться командная строка python)

РЕШЕНИЕ

Вы можете изменить формулу сборки Sublime Text или Систему %PATH% .

  • Чтобы установить %PATH%:
    * Вам нужно будет перезапустить редактор, чтобы загрузить новый%PATH%

    • Запустите командную строку * и введите эту команду: * необходимо запускать от имени администратора
      SETX /M PATH "%PATH%;<python_folder>"
      например:SETX /M PATH "%PATH%;C:\Python27;C:\Python27\Scripts"

    • ИЛИ вручную: (предпочтительно)
      Добавить ;C:\Python27;C:\Python27\Scriptsв конец строки. Настройка пути в Win7

  • Чтобы указать путь к интерпретатору, не связываясь с системой, %PATH%посмотрите этот ответ по ppy .

Qwerty
источник
Извините, но вы можете объяснить, что означает опция "-u"? Я не могу найти опцию списка параметров командной строки для передачи вместе с python.exe.
Джим Рейнор
@JimRaynor это небуферизованные потоки stackoverflow.com/questions/14258500/significance-of-u-option
Qwerty
9

Вы можете использовать SublimeREPL ( сначала необходимо установить Package Control ).

невидимость
источник
1
Не могли бы вы рассказать о том, как отправить данные из окна скрипта в SublimeREPL, потому что это работает для python, а R работает ...
Мэтт Баннер
6

Если вы используете Python 3.x, вам нужно отредактировать Python3.sublime-build

(Настройки> Обзор пакетов> Python 3)

выглядеть так:

{
  "path": "/usr/local/bin",
  "cmd": ["python3", "-u", "$file"],
  "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
  "selector": "source.python"
}
Даниэль Ромеро
источник
4

[Это относится к ST3 (Win), не уверен насчет ST2]

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

  1. Создайте новую систему сборки: Tools > Build Systems > New Build System...
  2. Используйте следующую конфигурацию:
    {
        "cmd": ["python.exe", "$ file", "1>", "$ file_name .__ STDOUT __. txt", "2>", "$ file_name .__ STDERR __. txt"],
        "селектор": "source.python",
        "оболочка": правда,
        "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 столбца или сетку, вы увидите результат немедленно, без необходимости переключать панели / окна
ellockie
источник
2

Круто, ребята, я только что нашел это:

http://ptomato.wordpress.com/2012/02/09/geek-tip-running-python-guis-in-sublime-text-2/

Он объясняет (как один из ответов выше), как редактировать этот exec.py в каталоге по умолчанию .

У меня была проблема, что мое приложение PYTHON UI не запустилось. Я закомментировал последнюю строчку из следующего отрезанного:

    # Hide the console window on Windows
    startupinfo = None
    if os.name == "nt":
        startupinfo = subprocess.STARTUPINFO()
        #startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW

и, taaadaaaa, я мог запустить свое приложение, нажав Ctrl + B. В любом случае смешная линия, а? И большое спасибо тому, кто написал эту статью ;-)

anhoppe
источник
Решил и мою проблему тоже. Вывод на консоль появлялся в Sublime Text 2, показывая, что мой код выполняется, но мой GUI так и не появился. Я прокомментировал эту строку, и теперь она есть. Консольный вывод все еще идет в Sublime Text. Отлично!
Джонатан Лидбек
1

Вы можете получить доступ к консоли Python через «View / Show console» или Ctrl+ `.

совать
источник
1
но он показывает следующую ошибку: Файл ". \ exec.py", строка 109, в файле запуска ". \ ntpath.py", строка 205, в файле dirname ". \ ntpath.py", строка 170, в файле split «. \ ntpath.py», строка 125, в splitdrive TypeError: объект 'NoneType' является неподписанным
neo
Пожалуйста, дайте более подробную информацию (расширив вопрос) о том, что вы делаете.
тыкай
я просто набираю код на python, например print 'hello', а затем собираю его и открываю консоль, чтобы увидеть эту ошибку.
нео
Использование консоли Python не отвечает на вопрос . Встроенный интерпретатор предназначен только для взаимодействия с API плагина, а не для общей разработки.
Mkenyon
1

Я решил эту проблему:

> Preferences –> Browse Packages –> Default 

Откройте exec.pyфайл рядом со строкой 41-42, код должен выглядеть так:

for k, v in proc_env.iteritems():
    proc_env[k] = os.path.expandvars(v).encode(sys.getfilesystemencoding())

затем удалите его или отредактируйте как:

try:    
    for k, v in proc_env.iteritems():
        proc_env[k] = os.path.expandvars(v).encode(sys.getfilesystemencoding())
except:
    print 'foobar'
Рея
источник
что это делает на самом деле? Как это помогает?
Qwerty
@Qwerty Он думал, что программа должна обрабатывать исключения, поэтому он поместил код в tryблок.
CHM
Я попробовал это. Это не решило проблему, и это сломало существующее поведение.
Джонатан Лидбек
1

Я столкнулся с той же проблемой сегодня. И вот как мне удалось запустить код Python в Sublime Text 3:

  1. Нажмите Ctrl+ B(для Mac, + B), чтобы начать сборку системы. Он должен выполнить файл сейчас.
  2. Следуйте этому ответу, чтобы понять, как настроить систему сборки.

Следующее, что вам нужно сделать, это заменить содержимое Python.sublime-buildна

{
    "cmd": ["/usr/local/bin/python", "-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python",
}

Конечно, вы можете настроить его так, чтобы он работал на вас.

Хуан Чао
источник
1

В питоне v3.x вы должны пойти: Tools->Build System->New Build System.

Затем он открывает всплывающее окно без названия в превосходном текстовом редакторе.

{

    "cmd": ["path_to_the_python.exe","-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python"
}

Чтобы увидеть путь Type following in terminal as:

python
>>> import sys
>>>print(sys.executable)

Вы можете создать более одной Системы сборки, но она должна сохранять по умолчанию внутри Пакетов с возвышенным текстом с расширением .sublime-build .

Затем выберите новую систему сборки и нажмите cltr+bили другое в зависимости от вашей ОС.

susan097
источник
0

У меня такая же проблема. Вы, вероятно, еще не сохранили файл. Обязательно сохраните ваш код с расширением .py, и он должен работать.

Онат
источник
0

Стоит отметить одну вещь о вышеупомянутой системе сборки : вы можете записывать (и использовать) пользовательские .sublime-buildфайлы или даже по каждому build_systemsпредложению проекта (в настройках вашего проекта). Это позволяет вам делать полезные вещи, такие как модный тестовый бегун с выводом цветов ANSI .

Для еще более «полной IDE» -функции вы можете использовать отличный пакет SublimePythonIDE :

  • завершение кода (intel)
  • перейти к определению и описанию объекта
  • правильная подкладка / pep8
  • поддерживает разных переводчиков с помощью virtualenv

Раскрытие информации: я добавил PR в этот пакет, и я использую его все время, но есть и другие .

tutuDajuju
источник
0

Используйте настоящую консоль Python вместе с Sublime

И система сборки Sublime, и SublimeREPL (ответы выше) ограничены тем, что вы не можете легко взаимодействовать с переменными рабочей области после запуска вашего файла.

Если вы хотите запустить скрипт, а затем работать подобно REPL (как в IDE), я рекомендую открыть Sublime рядом с консолью IPython. Используя AutoHotKey (Windows) или AutoKey (Linux), вы можете настроить его так, чтобы один ярлык копировал имя файла (или только выбранный код), а затем вставлял его в консоль для запуска файла.

Подробные инструкции для Linux или Windows

hugke729
источник