国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

在終端啟動Python時報錯的解決方案

瀏覽:5日期:2022-07-04 16:12:20

最近,在終端啟動Python時,報了一個錯誤:

Failed calling sys.__interactivehook__Traceback (most recent call last): File 'd:ProgramDataAnaconda3libsite.py', line 439, in register_readline readline.read_history_file(history) File 'd:ProgramDataAnaconda3libsite-packagespyreadlinerlmain.py', line 165, in read_history_file self.mode._history.read_history_file(filename) File 'd:ProgramDataAnaconda3libsite-packagespyreadlinelineeditorhistory.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報錯的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 国产精品v欧美精品v日本精 | 国产性做久久久久久 | 欧美级| 国产一区私人高清影院 | 亚洲一级片免费看 | 成年女人毛片免费观看中文w | 久久精品全国免费观看国产 | 狠狠色丁香婷婷综合久久片 | 亚洲精品免费视频 | 国产成人精品男人的天堂网站 | 在线步兵区 | 国产人成| 亚洲视频网站在线观看 | 国产精品观看在线亚洲人成网 | 在线播放另类 | 欧美一级鲁丝片免费看 | 亚洲高清中文字幕一区二区三区 | 国产a久久精品一区二区三区 | 免费观看亚洲视频 | 亚洲欧美久久精品 | 最新国产精品自拍 | 欧美手机手机在线视频一区 | 久久精品国产午夜伦班片 | 一级爱爱片一级毛片-一毛 一级爱做片免费观看久久 一级白嫩美女毛片免费 | 日本a级在线 | 久久99久久99精品观看 | 国内精品自产拍在线观看91 | 久草在线观看首页 | 亚洲人成毛片线播放 | 亚洲国产一区二区a毛片日本 | 亚洲欧美日韩色 | 日本欧美一区二区三区高清 | 国产成人综合手机在线播放 | 亚洲国产国产综合一区首页 | 一区二区三区在线免费视频 | 亚洲观看视频 | 女人张开双腿让男人桶爽免 | 一本高清 | 怡红院成人在线 | 欧美综合视频 | 久久免费看视频 |