Консоль Love2d на PyCharm пишет в консоль только после закрытия - PullRequest
0 голосов
/ 05 марта 2019

Я использую PyCharm Community Edition для создания приложения love2d. Я создал горячую клавишу, которая запускает файл .bat для запуска с lovec.exe, который открывает консоль при запуске приложения, затем я создал external tool для запуска файла .bat с помощью сочетания клавиш Когда я использую его, консоль открывается в PyCharm, который ничего не пишет, и после закрытия приложения появляется все, что должно было быть написано, когда я запускаю файл .bat вне PyCharm, он функционирует отлично.

Я хотел бы знать, есть ли очевидное исправление или просто как запустить консоль вне pycharm через внешний инструмент.

1 Ответ

1 голос
/ 07 марта 2019

Эта проблема связана с тем, что Lua задерживает запись файлов, известную как «буферизация». Чтобы изменить его, поместите следующую команду вверху файла:

io.stdout:setvbuf( 'no' ) -- Switches buffering for stdout to be off

Подробнее в руководстве Луа :

file:setvbuf (mode [, size])

Устанавливает режим буферизации для выходного файла. Доступны три режима:

  • "нет" : без буферизации; результат любой операции вывода появляется немедленно.
  • "full" : полная буферизация; Операция вывода выполняется только тогда, когда буфер заполнен или когда вы явно flush файл (см. io.flush).
  • "строка" : буферизация строки; выходные данные буферизуются до тех пор, пока не будет выведен символ новой строки или пока не появятся какие-либо входные данные из некоторых специальных файлов (например, оконечного устройства).

В последних двух случаях size указывает размер буфера в байтах. По умолчанию используется соответствующий размер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...