为了给自己的图片接口站api.horosama.com补充图片,写了个壁纸爬虫程序,同时用Gooey做了个简单的GUI,然而,程序在vscode里直接运行的时候,是可以print函数输出到GUI的命令行窗口的,用pyinstaller打包之后就不行了。
  搜了一下github上Gooey的issue发现有大佬给出了解决方法,在代码前加入如下几行

import codecs
import sysif sys.stdout.encoding != 'UTF-8':sys.stdout = codecs.getwriter('utf-8')(sys.stdout.buffer, 'strict')
if sys.stderr.encoding != 'UTF-8':sys.stderr = codecs.getwriter('utf-8')(sys.stderr.buffer, 'strict')

  然后记得print函数加入参数flush=True,再打包一次就可以啦~
  这行代码之所以能起作用,我推测应该还是和python的print编码以及windows的控制台编码的问题,可以参考下这篇博文python,window控制台下编码问题。

  引用下这篇文章的开头部分如下:

  Python 的 print 语句有一个很奇怪的 bug。它的功能是向控制台输出字符,这本身不是问题。但是 Python 内部是支持 Unicode 字符串的,而 Unicode 字符串在用 print 输出时 print 要进行一次从 Unicode 到 ANSI/MBCS 编码的编码,编码后才会以 8-bit 流输出结果。
  编码就编码吧,这也是很正常的。对于控制台程序来说,输出可能被重定向到文本文件。如果不指定编码,重定向时就不知道以何种 8-bit 字节流写入文本文件,所以,输出到控制台的东西理论上也应该是经过编码的 8-bit 流。综上所述,确实有必要进行一次 WCHAR 到 char 的转码。
  但是问题在于,Python 的 print 语句在转码时,居然用的是 strict 规则。即,待输出字符串若含有当前代码页之外的字符,就会在转码过程中出现不可转码的文字,从而抛出 exception。print 语句又不处理这个 exception,导致一个平平常常 print 语句竟然会引起 Python 程序的异常!这简直是不可思议。

Gooey使用python打包后,print不能输出到GUI的命令行窗口内的问题解决相关推荐

  1. matlab命令行窗口显示长度设置_设置命令行窗口输出显示格式 | MATLAB format| MathWork...

    本页对应的中文页面未升级,但未能翻译. 若应查看最新内容,请点击这里访问英文页面. 设置命令行窗口输出显示格式 format 将命令行窗口中的输出显示格式修改为 style 指定的格式. format ...

  2. Unity3D打包后日志文件输出目录

    Unity3D打包后日志文件输出目录,包括日志文件和崩溃时记录文件 C:\Users\Administrator\AppData\LocalLow\长沙迪迈科股份有限公司\镍矿探秘 其中". ...

  3. Python如何用print函数输出田字格?如何计算十年后的体重?

    Python如何用print函数输出田字格? 在 Python 编程中,使用 print 函数输出田字格是一项常见的任务.田字格是由"田"字形的方格组成的表格,通常用于排版或整理数 ...

  4. python打包后程序报错:PermissionError: [Errno 13] Permission denied

    python打包后程序报错:PermissionError: [Errno 13] Permission denied 用python写了一个小程序,然后打包成exe,测试过了功能是完善的,但突然有一 ...

  5. python idle 常规命令_Python的3种运行方式:命令行窗口、Python解释器、IDLE的实现

    1 命令行窗口 开始栏搜索command,打开命令提示符,即为命令行窗口. 运行一个Python程序,需要输入:Python + 程序地址 + 程序名.py 如图: 2 Python解释器 开始栏搜索 ...

  6. 解决CMD命令行窗口不显示颜色问题python

    最近在做一个CMD命令行窗口显示不同颜色的字体的功能时,发现按照网上的方法设置均不生效 1.比如最常见的方法,print("\033[0;30;40m\tHello World\033[0m ...

  7. 【Python知识点梳理】10.Python的垃圾回收机制、代码规范及命令行参数

    Python的垃圾回收机制.代码规范及命令行参数 文章目录 1.Python的垃圾回收机制 2.Python的引用计数机制 3.Python中的循环数据结构及引用计数 4.Python中的GC模块 5 ...

  8. java输出希腊字母_java 命令行窗口输出希腊字母表

    /** * @author Administrator * 编写程序,命令行窗口输出希腊字母表.(希腊字母表开始为α,最后一个为ω) */ public class OutGreekLetter { ...

  9. 命令行窗口cmd中的python指令

    目的 cmd指令 查看已安装的库 pip list 查看指定的库 pip show 库名称 查看可升级的库 pip list -o 升级指定的库 pip install --upgrade 库名称 安 ...

最新文章

  1. c语言字符串转64位哈希值,对字符串进行hash处理用什么方法好???
  2. cisco firewall (ASA Series)
  3. python机器学习预测_使用Python和机器学习预测未来的股市趋势
  4. young people can also be a leader
  5. 【Spark】Spark的Kryo序列化
  6. 联想即将推出预装 Fedora 的 ThinkPad 笔记本电脑
  7. python的8种标准数据类型有哪些_Python的八种数据类型
  8. MySQL 8.0设置sort_buffer_size
  9. CSS使图像等比例缩放兼容IE6、IE7、FF
  10. cplex的下载、安装、IDE编程及相关问题解决
  11. mysql建表语句转hive sql
  12. 尚学堂python开发工具_尚学堂百战程序员分享:Python的数据模型
  13. 谭老师c语言入门 小甲鱼,《零基础入门学习C语言》视频教程(小甲鱼主讲全套共65节)...
  14. 机器人操作系统、自动驾驶等研发工具整理
  15. 模拟数据生成工具--Faker
  16. Tightvncserver 连接树莓派的方法及步骤
  17. 疾病研究:重症肌无力
  18. 外箱条码标签如何用条码标签编辑软件制作?
  19. 40 How Many Numbers Are Smaller Than the Current Number
  20. Excel 筛选重复值和删除重复值的异同

热门文章

  1. 深度强化学习之Capstone项目——基于DQN的赛车游戏
  2. AFNetwork上传图片
  3. 该如何管理在线教育?
  4. 六、SQL Server数据库用户管理
  5. Java生成二维码并贴到新的图片上
  6. 1994年,电影的颠峰,永远无法被超越[转载]
  7. 小艾和她女朋友(俄罗斯农民乘法)
  8. 阿里云注册流程和实名认证方法(图文教程)
  9. 移除idea 项目结构后面显示0%classes,0% lines covered
  10. SEO优化比较容易的几个网站