在python中使用print()时,raw write()返回无效的长度:OSError: raw write() returned invalid length 254 (should have been between 0 and 127)
写出一个不是code的bug,很烦恼,解决了挺长时间,都翻到外文来看,不过还是解决了,只尝试了一种简单可观的方法,希望对大家有用
我正在使用Django与Keras(tensorflow)来训练一个模型来识别python中的图像。在python中使用print()时,raw write()返回无效的长度,
即使我想把print()注释掉,也时不时的蹦出来,错误如下:
Traceback (most recent call last):
File "D:\AI\Python35\lib\site-packages\django\core\handlers\exception.py", line 35, in inner
response = get_response(request)
File "D:\AI\Python35\lib\site-packages\django\core\handlers\base.py", line 128, in _get_response
response = self.process_exception_by_middleware(e, request)
File "D:\AI\Python35\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "E:\PyCharmWork\PythonWebApp\ApiPicDjangoSite\PicWeb\views.py", line 94, in trainPic
bankTrain.Cnn_bank_run(lineData,linefile)
File "E:\PyCharmWork\PythonWebApp\ApiPicDjangoSite\PicWeb\Cnn_Bank_train.py", line 70, in Cnn_bank_run
modelTrain.modelTrain_ByType(kwargs[1],X_train,Y_train,X_test,Y_test)
File "E:\PyCharmWork\PythonWebApp\ApiPicDjangoSite\PicWeb\trainModel_init.py", line 113, in modelTrain_ByType
verbose=1, validation_data=(kwgs[3], kwgs[4]))
File "D:\AI\Python35\lib\site-packages\keras\models.py", line 960, in fit
validation_steps=validation_steps)
File "D:\AI\Python35\lib\site-packages\keras\engine\training.py", line 1650, in fit
validation_steps=validation_steps)
File "D:\AI\Python35\lib\site-packages\keras\engine\training.py", line 1233, in _fit_loop
callbacks.on_epoch_end(epoch, epoch_logs)
File "D:\AI\Python35\lib\site-packages\keras\callbacks.py", line 73, in on_epoch_end
callback.on_epoch_end(epoch, logs)
File "D:\AI\Python35\lib\site-packages\keras\callbacks.py", line 306, in on_epoch_end
self.progbar.update(self.seen, self.log_values, force=True)
File "D:\AI\Python35\lib\site-packages\keras\utils\generic_utils.py", line 369, in update
sys.stdout.write(info)
OSError: raw write() returned invalid length 254 (should have been between 0 and 127)
错误都很有规律可循:
Error like this:
OSError: raw write() returned invalid length 318 (should have been between 0 and 159)
OSError: raw write() returned invalid length 8 (should have been between 0 and 4)
OSError: raw write() returned invalid length 130(should have been between 0 and 65)
Please note: 318=159x2 8=4x2 130=65x2
原因:可能与最近的Windows 10更新有关。我有版本1709(操作系统版本16299.64),
我认为这可能是unicode字符的返回值(正常长度的两倍)?
我实际上可以在外部powershell.exe中重现此错误,所以这本身不是Code相关的。
总的来说,与win10系统、版本有关系,踩中雷区了(本人win10,版本 10.0.16299 版本 16299)
可以cmd一下,输入msinfo32,就能看到版本情况
解决方案:写入以下代码到报错提示的python的中,写在开头
事先要看你是否pip win_unicode_console,没有,就赶快动手 import win_unicode_console
win_unicode_console.enable()
如下:

参考:https://github.com/Microsoft/vscode/issues/39149
https://qiita.com/non0/items/4014b81f5a2d232ae22f
https://stackoverflow.com/questions/47356993/oserror-raw-write-returned-invalid-length-when-using-print-in-python
在python中使用print()时,raw write()返回无效的长度:OSError: raw write() returned invalid length 254 (should have been between 0 and 127)的更多相关文章
- Django报错:OSError: raw write() returned invalid length 4 (should have been between 0 and 2)
在使用Django时Django报错:Django报错:OSError: raw write() returned invalid length 4 (should have been between ...
- 【Django错误】OSError: raw write() returned invalid length 14 (should have been between 0 and 7)
错误环境 使用Django框架创建完models类的之后,用python manage.py migrate命令来生成数据库表的时候出错 错误代码 Operations to perform: App ...
- 浅析 python中的 print 和 input 的底层区别!!!
近期的项目中 涉及到相关知识 就来总结一下 ! 先看源码: def print(self, *args, sep=' ', end='\n', file=None): # known special ...
- Python中的print
Python 3.X的print 在Python 3.X中,print是一个内置函数,完整的声明形式如下: print([object, ...][, sep=' '][, end='\n'][, f ...
- Python中的print、input函数以及Python中交换两个变量解析
一.Python中的值交换操作 首先明确一点点,Python中的一切都是面向对象的,可以理解为Python的中一切都是对象. 我们知道Java也是面向对象的语言,但是在Java中定义一个值变量如下: ...
- 在Python中写入文件时,权限被拒绝错误
我想创建一个文件并在python中写一些整数数据.例如,我有一个变量abc = 3,我试图将它写入一个文件(它不存在,我假设python将自己创建): fout = open("newfil ...
- Python中调用Linux命令并获取返回值
方法一.使用os模块的system方法:os.system(cmd),其返回值是shell指令运行后返回的状态码,int类型,0表示shell指令成功执行,256/512表示未找到,该方法适用于she ...
- 如何解决python中使用flask时遇到的markupsafe._compat包缺失的问题
在使用python进行GUI的程序编写时,使用flask时出现错误: 在使用pip freeze进行查看已下载的包时显示MarkupSafe与Jinjia2都已安装: 在网上查阅一些资料后发现,在py ...
- python中使用flask时遇到的markupsafe._compat包缺失的问题与解决
环境:windows7 + python3.6.0 在尝试使用python的flask时,按照flask的tutorial操作,装好flask.venv后,对tutorial中的hello.py进行运 ...
随机推荐
- 关于token登录逻辑分析
前言: token登录上一家公司也写过,迷迷糊糊的, 现在做一个APP,需求为每次调用接口都会传token,登录注册等特殊的除外, 逻辑整理一下还是比较简单的 主要的问题还是,如何在框架中找到较好的插 ...
- [官网]Using PuTTY
Previous | Contents | Next Chapter 3: Using PuTTY Section 3.1: During your session Section 3.1.1: Co ...
- AirBnB春招笔试题
试题说明 笔试题只有一道,限时1小时. 模拟一个战争外交游戏,游戏中定义了三种操作: A city1 Hold : 军队A 占领了city1 A city1 Move city2 : 军队A从city ...
- Manacher算法详解
问题 什么是回文串,如果一个字符串正着度读和反着读是一样的,这个字符串就被称为回文串. such as noon level aaa bbb 既然有了回文,那就要有关于回文的问题,于是就有了-- 最长 ...
- mpvue——引入echarts图表
安装 mpvue-echarts的github地址 https://github.com/F-loat/mpvue-echarts $ cnpm install mpvue-echarts $ cnp ...
- 5.15 pymysql 模块
pymysql 模块 安装 pip3 install pymysql 链接,执行sql,关闭(游标) import pymysql user= input('用户名:>>').strip( ...
- Mybatis Generator的model生成中文注释,支持oracle和mysql(通过实现CommentGenerator接口的方法来实现)
自己手动实现的前提,对maven项目有基本的了解,在本地成功搭建了maven环境,可以参考我之前的文章:maven环境搭建 项目里新建表时model,mapper以及mapper.xml基本都是用My ...
- BZOJ2870 最长道路
题意:给定树,有点权.求一条路径使得最小点权 * 总点数最大.只需输出这个最大值.5w. 解:树上路径问题,点分治. 考虑合并两个子树的时候,答案的形式是val1 * (d1 + d2),当1是新插入 ...
- CF1131D Gourmet choice
题目链接 题意 有两组菜,第一组有\(n\)种,第二组有\(m\)种.给出一个\(n\times m\)的矩阵,第\(i\)行第\(j\)列表示第一组中的第\(i\)种菜与第二组中的第\(j\)种菜好 ...
- pytest 11 allure2生成html报告
allure是一个report框架,支持java的Junit/testng等框架,当然也可以支持python的pytest框架,也可以集成到Jenkins上展示高大上的报告界面. 环境准备 1.pyt ...