Скорее всего, это связано с тем, что curses
пытается определить, какой тип терминала использовать для таких вещей, как вывод цветов и манипулировать положением курсора.
Когда вы используете стандартную систему сборки в Sublime Text, все, что он делает, это захватывает вывод вашей программы и выводит его на панель; то есть это не терминал вообще. Таким образом, вероятно, нет TERM
набора переменных, и даже если бы он был, он был бы бессмысленным, потому что curses
не будет работать в любом случае.
Важное замечание в этом отношении заключается в том, что «тупой терминал» что Sublime использует для вывода дампов, не принимает ввод, поэтому, если ваша программа ожидает получить какие-то данные от пользователя, чтобы что-то сделать, это также не удастся.
Чтобы решить обе эти проблемы, вы может сделать что-то вроде этого:
- Установите пакет Terminus , который предоставляет терминал внутри Sublime
Откройте файл sublime-build
и добавьте следующие ключи внутри символов { }
(в любом месте в порядке).
"target": "terminus_exec",
"cancel": "terminus_cancel_build",
Теперь, когда вы запустите сборку, Terminus откроет реальный терминал и запустит ваш код внутри. Это скорее среда, которую ожидает curses
, и она также необходима, если ваша программа должна быть каким-либо образом интерактивной.
Более подробную информацию можно найти в этом видео о , делающем любую сборку система интерактивная с Terminus при необходимости. Это может быть особенно полезно, если вы не знаете, как найти и открыть используемый вами файл сборки.