怎么在终端启用python_在终端启动Python时报错的解决方案

最近,在终端启动Python时,报了一个错误:

Failed calling sys.__interactivehook__

Traceback (most recent call last):

File "d:\ProgramData\Anaconda3\lib\site.py", line 439, in register_readline

readline.read_history_file(history)

File "d:\ProgramData\Anaconda3\lib\site-packages\pyreadline\rlmain.py", line 165, in read_history_file

self.mode._history.read_history_file(filename)

File "d:\ProgramData\Anaconda3\lib\site-packages\pyreadline\lineeditor\history.py", line 82, in read_history_file

for line in open(filename, 'r'):

UnicodeDecodeError: 'gbk' codec can't decode byte 0xa7 in position 2167: illegal multibyte sequence

原因是Python的终端历史文件中包含中文,但不能正确使用gbk解码。查看了Python历史文件(系统用户目录下的.python_history),其编码方式为“utf-8”,而”history.py”中读取历史文件时使用的编码方式为“gbk”,所以会报错。

解决方法

在history.py中使用`for line in open(filename, 'r')`来打开文件并读取每一行,使用的是默认的编码方式。需要根据不同文件的编码方式传入相应的参数值。

1. 首先检测出要打开的文件的编码方式。

在类中定义一个私有方法_get_encoding,作用是检测文件的编码方式,并返回。(需要导入chardet包)

def _get_encoding(self, filename=None):

if filename is None:

return

with open(filename, 'rb') as f:

return chardet.detect(f.read())['encoding']

2. 修改历史文件内容的读取

encoding = self._get_encoding(filename)

for line in open(filename, 'r', encoding=encoding):

self.add_history(lineobj.ReadLineTextBuff(ensure_unicode(line.rstrip())))

以上就是在终端启动Python时报错的解决方案的详细内容,更多关于终端启动python报错的资料请关注脚本之家其它相关文章!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/244530.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue项目html引入css,vue项目引入自定义.css的样式文件

ES6的引入方式:.vue文件中css文件引入import "../assets/common/common.css";//自定义.css的样式路径js文件的引入在main.js中:import API from ./assets/api/api.config.jsVue.prototype.$API API;P.S.:传统上,引入cs…

485通信原理_上位机开发之单片机通信实践

经常会有一些学员会问到上位机与单片机之间通信的问题,而我们经常会讲上位机与PLC之间通信,那么其实对上位机开发来说,不管是和PLC通信,还是和单片机通信,通信原理都是一样的。PLC的本质就是单片机,在单片机…

hive 结构metastone_深入理解hive之事务处理

事务的四个特性1.automicity:原子性2.consistency:一致性3. isolation:独立性4.durability:持久性5.支持事务有几个条件需要满足:1.所有的事务都支持自动提交;2.只支持ORC格式的数据;3.桶表7.配置hive的参数使其支持事务&#xff…

计算机数媒专业优势,27所院校新开设数字媒体艺术专业,“数媒”专业为什么这么火?...

原标题:27所院校新开设数字媒体艺术专业,“数媒”专业为什么这么火?今年2月,教育部公布了2020年度普通高等学校本科专业备案和审批结果。其中,有包括华中农业大学在内的全国27所院校新增备案了“数字媒体艺术”本科专业…

sap 分割评估_SAP那些事-实战篇-73-受托加工的几种方案探讨

大家都知道,SAP中对于委托加工有标准的解决方案,包括标准委托(带料委托加工)和工序委托,然而,对于受托方(即代加工方)SAP却没有标准的解决方案,后来想想,也怪…

婚宴座位图html5,图解现代婚宴座位安排

中国人衣、食、住、行素来都有“礼”可循。对于婚宴来说更是讲究,桌子的摆放,座位的安排都需要经过深思熟虑。因为小小的桌椅就关系到婚宴的礼仪以及宾客的身份。下面就让专家为我们进行图解婚宴座位安排和礼仪的指导吧!婚礼座位安排&#xf…

c++ 图的连通分量是什么_学习数据结构第五章:图(图的遍历操作)

第五章:图(图的遍历操作)1.图的遍历图的遍历:从图中某一顶点出发,按照某种搜索方法沿着图中的边对图中的所有顶点访问依次且仅访问一次其实树的层次遍历和图的广度优先搜索类似,可以把这个二叉树看成一个图2.广度优先搜索(BFS)广度…

带通滤波器作用和用途_带通滤波器的作用和电路设计图

一个带通滤波器是一个只有在特定频段的频率传递信号衰减这一频段以外的所有信号的同时,其目的是的电路。在一个带通滤波器的重要参数,高,低截止频率( F H 和f 升),带宽(BW),中心频率 f C,中心频率增益&…

轮换html有虚宽出现,乒乓球理论考试复习资料

一、判断题(共10题,每题3分)1)突出、战术变化多、无明显漏洞。()正确2)运动员甲使用的球拍底板由于磨损碰掉一块木片,他用质量相同的木料进行修补,表面平整,裁判员不许其正式比赛时使用。()正确3)发球时第一落点距球网过近&#x…

gson json转map_Java几种常用JSON库性能比较

点击上方“Java研发军团”,选择“置顶公众号”关键时刻,第一时间送达!阅读本文需要5分钟作者:飞污熊xncoding.com/2018/01/09/java/jsons.html本篇通过JMH来测试一下Java中几种常见的JSON解析库的性能。 每次都在网上看到别人说什…

nodejs 游戏框架_nodejs游戏服务器框架

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":6,"count":6}]},"card":[{"des":"云服务器 ECS(Elastic Compute Service)是一…

计算机辅助设计工业产品cad竞赛试题,2017计算机辅助设计(工业产品CAD)赛项样题...

2017年全国职业院校技能大赛中职“计算机辅助设计(工业产品CAD)”赛项样题参赛选手须知1.比赛时间4小时,赛题共3大题4道题目,参赛选手需完成全部题目。2.参赛选手应始终保持赛题、图册完整,不得拆散赛题或图册。3.参赛选手须严格按照题目规定…

技校毕业是什么学历_技校毕业了是什么学历

展开全部技校毕业是中专学历。技校的全称为:技工学校。技校与中专、32313133353236313431303231363533e59b9ee7ad9431333365656536职高、一样,都是属于同等的高中层次学历。技校毕业的学生可以获得技工学校印发的初级、中级、高级或者以上的职业资格证书…

golang 捕获堆栈信息_【网络数据安全】为什么时间戳对于数据包捕获很重要

网络上发生的所有事件都是时间敏感的,这就是为什么在讨论数据包捕获和分析时,给数据包加上时间戳非常重要。此功能不仅可以防止和分析网络攻击,而且还能让你检查趋势和网络延迟。网络数据包时间戳可用于调查以某种方式影响网络性能的事件。例…

只能计算机论文,谈计算机及人工智能技术发展-人工智能论文-计算机论文.docx...

谈计算机及人工智能技术发展-人工智能论文-计算机论文——文章均为WORD文档,下载后可直接编辑使用亦可打印—— 摘要:计算机技术的发展,在一定程度上改变了社会的生产生活方式,其作为辅助工具的一种,应用范围十分广泛&…

单选按钮带文字_计算机二级MS office高级应用历年真题操作题文字解析

​word 1题目在考生文件夹下打开文档 WORD.DOCX。 某高校学生会计划举办一场"大学生网络创业交流会"的活动,拟邀请部分专家和老师给在校学生进行演讲。因此,校学生会外联部需制作一批邀请函,并分别递送给相关的专家和老师。 请按如…

成都东万计算机学校,东兴区东方科技职业技术学校

东兴区东方科技职业技术学校招生专业建筑工程、学前教育、会计电算化、计算机应用、汽车检验与维修、机电一体化。东兴区东方科技职业技术学校招生计划招生专业招生人数建筑工程80学前教育80会计电算化80计算机应用80汽车检验与维修80机电一体化80东兴区东方科技职业技术学校助…

python语言的编程模式_一种基于Python语言的EDA开发平台及其使用方法与流程

本发明涉及EDA开发的技术领域,尤其是指一种基于Python语言的EDA开发平台及其使用方法。 背景技术: 目前,主流的EDA设计语言Verilog HDL能实现完整的芯片硬件逻辑电路开发,但是其代码密度低,可移植性和编程效率等等都存…

为什么只有奇次谐波_我们为什么要用UPS不间断电源?

所谓不间断电源系统,就是当停电时能够接替市电持续供应电力的设备,它的动力来自电池组,由于不间断电源反应速度快,停电的瞬间在4~8毫秒内或无中段时间下继续供应电力。为什么要用UPS不间断电源?现在全世界各国的大众供…

陕师大计算机专业,陕师大计算机系组合数学试题

《陕师大计算机系组合数学试题》由会员分享,可在线阅读,更多相关《陕师大计算机系组合数学试题(5页珍藏版)》请在人人文库网上搜索。1、满足不同条件的映射的个数1、设为有限集合,则(1) 从到的映射有 个;(2) 若,则从到…