python Gooey用pyinstaller 生成可执行exe后所有print语句程序执行完后才会显示,中间过程不显示,IDLE调试和直接调用py文件print会逐条打印。
这个问题可能是由于Gooey库的某些特性导致的,但可以通过以下方法来解决。
一种解决方案是将输出重定向到文件中,然后在程序执行结束后将文件内容打印出来。可以使用以下代码将输出重定向到文件中:
import sys
# 重定向标准输出到文件
sys.stdout = open('output.txt', 'w')
然后在程序结束时,将文件内容读取并打印出来:
# 读取文件内容并打印
with open('output.txt', 'r') as f:
print(f.read())
这种方法会将所有输出都写入文件中,而不是在程序执行期间直接打印。
另一种解决方案是使用Python的logging模块来记录程序输出。logging模块可以配置不同的日志级别,并且可以将输出记录到文件中或打印到控制台上。
以下是一个简单的示例:
import logging
# 配置日志记录
logging.basicConfig(level=logging.DEBUG, filename='output.log', filemode='w')
# 在程序中使用logging记录输出
logging.debug('Debug message')
logging.info('Info message')
logging.warning('Warning message')
logging.error('Error message')
logging.critical('Critical message')
# 打印日志文件中的内容
with open('output.log', 'r') as f:
print(f.read())
这种方法可以更加灵活地控制输出的级别和输出的方式,并且可以在程序执行期间即时打印输出。