Остановить NppExec от перехвата вывода консоли до завершения программы

2644
Abiel

Я использую плагин NppExec для Notepad ++ для выполнения скриптов Python из Notepad ++. Я заметил, что вывод консоли Python, созданный с помощью print()оператора, не появляется на консоли Notepad ++ до тех пор, пока весь скрипт не будет завершен. Есть ли способ заставить печатные заявления появляться в режиме реального времени?

Я использую Notepad ++ v.5.9.8 и NppExec v0.4.1.

3
Попробуйте `python -u` для запуска в небуферизованном режиме. http://stackoverflow.com/questions/230751/how-to-flush-output-of-python-print jdigital 12 лет назад 3
@ user8368 - Спасибо, это сработало отлично. Abiel 12 лет назад 0

1 ответ на вопрос

3
prrao

Окно консоли NppExec запускается как дочерний процесс, что означает, что обновление отображения окна консоли, а также запуск основной программы выполняются в одном потоке . По умолчанию выходные данные оператора печати Python буферизуются и выполняются в том же потоке, что и родительский скрипт, поэтому выходные данные должны отображаться в небуферизованном режиме . Это сделано с -uфлагом.

Используйте python -u script.pyвместо обычного python script.py, как можно видеть в этом вопросе .

Чтобы предотвратить подавление собственных окон вашего скрипта (точно не знаю, что здесь происходит), запустите вызов Python в качестве аргумента для `cmd`, предварительно определив` cmd / c`. Например, я использую `cmd / c python -u" $ (FULL_CURRENT_PATH) "`, поэтому мое окно Cocos2D появляется. Eric 11 лет назад 1

Похожие вопросы