Як запустити Python-код із Sublime Text 2?


309

Я хочу встановити повний ID Python в 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


9
піднесений текст також може "автоматично визначати" мову. Тож у мене вийшло лише CTRL + B
Алексіс

4
Переконайтеся, що pythonу вашому PATH... інсталятор Windows, схоже, не робить цього автоматично
SeanJA

2
як ви припиняєте запуск програми (python)?
Ib33X

3
Клавіша перерви на моїй клавіатурі виглядає як "Призупинити / перервати", тому для зупинки процесу я також додала{"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. Він працює у вікні внизу.

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


55

Редагувати% APPDATA% \ Піднесений текст 2 \ Python \ Python.sublime-build

Змінити вміст на:

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

змінити частину "c: \ python27" на будь-яку версію python у вашій системі.


3
Зверніть увагу на подвійну косу рису на шляху, Sublime не визнає її інакше!
Енріко

6
Один похилий нахил вперед також працює замість подвійного косого кута в Windows: "C: /Python27/python.exe" (à la Linux and OSX)
Dylan Hogg

7
Для мене шлях був% APPDATA% \ Sublime Text 2 \ Packages \ Python \ Python.sublime-build
aultimus

5
Я, здається, не бачу папки Python в Sublime Text 3
HoKy22

44

Щоб натиснути RUNCtrlB (відповідь 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)

РІШЕННЯ

Ви можете змінити формулу збірки піднесеного тексту або систему %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 .


Вибачте, але чи можете ви пояснити, що означає варіант "-u"? Я не можу знайти параметр списку параметрів командного рядка для передачі разом з python.exe.
Джим Рейнор

@JimRaynor це нерозподілені потоки stackoverflow.com/questions/14258500/significance-of-u-option
Qwerty


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"],
        "selector": "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 стовпчики або сітку, ви побачите результат негайно, без необхідності перемикання панелей / вікон

2

Класні U хлопці, я щойно знайшов це:

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. Смішна лінія в будь-якому випадку, е-е? І велике спасибі тому, хто написав цю статтю ;-)


Вирішив і мою проблему. Вихід консолі відображався в Sublime Text 2, показуючи, що мій код виконується, але мій графічний інтерфейс так і не з’явився. Я прокоментував цей рядок, і тепер він є. Вихід з консолі все ще переходить до Sublime Text. Ідеально!
Джонатан Лідбек

1

Ви можете отримати доступ до консолі Python через "Переглянути / Показати консоль" або Ctrl+ `.


1
але вона показує таку помилку: Файл ". \ exec.py", рядок 109, у запуску "Файл". \ ntpath.py ", рядок 205," Файл dirname ". \ ntpath.py", рядок 170, розділений файл "\ ntpath.py", рядок 125, в splitdrive TypeError: об'єкт 'NoneType' є unsubscriptable
нео

Будь ласка, дайте більше деталей (розширивши питання) про те, що ви робите.
ткнути

Я просто введіть код python, наприклад, надрукувати "привіт", а потім скласти його та відкрити консоль, щоб побачити цю помилку.
нео

Використання консолі 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.

Потім воно спливає вікно untitled.sublime-build у текстовому редакторі піднесеного виду. Введіть налаштування як:

{

    "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або інше на основі вашої операційної системи.


0

У мене була така ж проблема. Напевно, ви ще не зберегли файл. Не забудьте зберегти свій код з розширенням .py і він повинен працювати.


0

Одне зауваження щодо вищезгаданої системи збирання : ви можете писати (і використовувати) спеціальні .sublime-buildфайли або навіть за build_systemsпунктом проекту (у налаштуваннях вашого проекту). Це дозволяє робити такі корисні речі, як вишуканий тестовий бігун з вихідними кольорами ANSI .

Щоб отримати ще більше "повних функцій IDE", ви можете використовувати відмінний пакет SublimePythonIDE :

  • заповнення коду (intel)
  • перейти до визначення та опису об'єкта
  • правильне облицювання / pep8
  • підтримує різних перекладачів з virtualenv

Розкриття: Я сприяв PR в цьому пакеті, і я його постійно використовую, але є й інші .


0

Використовуйте справжню консоль пітона поряд із Sublime

І система збирання Sublime, і SublimeREPL (відповіді вище) обмежені тим, що після запуску файлу ви не можете легко взаємодіяти зі змінними робочої області.

Якщо ви хочете запустити сценарій, працюйте таким чином, як REPL (як у IDE), тоді я рекомендую відкрити Sublime поряд з консоллю IPython. Використовуючи AutoHotKey (Windows) або AutoKey (Linux), ви можете встановити це так, що одна ярлика скопіює ім'я файлу (або просто вибраний код), а потім вставити його в консоль для запуску файлу.

Детальні інструкції для Linux або Windows

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.