亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

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

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

瀏覽:19日期: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 編程
相關文章:
主站蜘蛛池模板: 国产成人在线网址 | 久久er热这里只有精品23 | 丁香婷婷在线观看 | 美女污污视频在线观看 | 一区二区福利视频 | 大陆一级毛片免费视频观看 | 国产成人高清在线 | 91久久九九精品国产综合 | 精品在线不卡 | 日本一级毛片视频在线看 | 欧美日韩国产超高清免费看片 | yy9299| 亚洲精品乱码久久久久久蜜桃欧美 | jiz欧美高清 | 免费福利片 | 亚洲精品入口一区二区在线播放 | 国产高级黄区18勿进一区二区 | www.色婷婷.com| 黄色片视频在线观看 | 国产成人香蕉在线视频fuz | 中文字幕亚洲另类天堂 | 天天做天天爱天天影视综合 | 成年超爽大片免费视频播放 | 欧美艳星性videose精品 | 日韩欧美在线视频 | 萌白酱粉嫩福利视频在线观看 | 欧美午夜免费一级毛片 | 久久不卡免费视频 | 国产对白91色拍高清精品 | 国产成人综合一区人人 | 青青操视频在线免费观看 | 色偷偷综合网 | 成人午夜爽爽爽免费视频 | 免费网站成人亚洲 | 国产特黄特色的大片观看免费视频 | 高清欧美在线三级视频 | 亚洲综合精品 | 成人在线不卡视频 | 国产免费专区 | 国产视频你懂得 | 特级毛片aaa免费版 特级毛片a级毛免费播放 |