PyCharm上的Love2d控制台仅在关闭后才写入控制台

时间:2019-03-05 17:04:17

标签: lua pycharm jetbrains-ide love2d

我正在使用PyCharm社区版来创建love2d应用程序。我已经创建了一个运行.bat文件的热键,以使用lovec.exe运行该文件,并在应用运行时打开了控制台,然后我创建了一个external tool来运行{{ 1}}文件通过键盘快捷键使用,当我使用它时,控制台会在PyCharm中打开,它不会编写任何内容,并且在关闭应用程序后,当我运行{{1 }}文件在PyCharm之外功能完善。

我想知道是否有明显的解决方法,或者只是如何通过外部工具在pycharm之外运行控制台。

1 个答案:

答案 0 :(得分:1)

此问题归因于Lua延迟写入文件的方式,称为“缓冲”。要更改它,请在文件顶部放置以下命令:

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

在Lua的manual中了解更多信息:

  

file:setvbuf (mode [, size])

     

设置输出文件的缓冲模式。共有三种可用模式:

     
      
  • “否” :无缓冲;任何输出操作的结果都会立即显示。
  •   
  • “已满” :完全缓冲;仅在缓冲区已满或您明确flush文件(请参见io.flush)时才执行输出操作。
  •   
  • “行” :行缓冲;输出缓冲直到输出换行符或某些特殊文件(例如终端设备)的任何输入。
  •   
     

对于后两种情况,size指定缓冲区的大小(以字节为单位)。默认值为适当的大小。