Python命令窗口tab自动补全设置和UnicodeDecodeError问题解决方案
程序员文章站
2022-04-01 20:40:54
...
Python cmd窗口补全及UnicodeDecodeError问题解决
Python cmd窗口tab自动补全
以下Python cmd窗口tab补全设置转自Python (Win)readline和tab补全的安装
-
- 首先需要安装pyreadline包
执行python -m pip install pyreadline
安装pyreadline包
- 首先需要安装pyreadline包
#python Tab
import sys
import readline
import rlcompleter
import atexit
import os
readline.parse_and_bind('tab: complete')
# windows
histfile = os.path.join(os.environ['HOMEPATH'], '.pythonhistory')
# linux
# histfile = os.path.join(os.environ['HOME'], '.pythonhistory')
try:
readline.read_history_file(histfile)
except IOError:
pass
atexit.register(readline.write_history_file, histfile)
del os, histfile, readline, rlcompleter
-
- 开启python时,运行tab.py
每次开启python时,运行import tab
,即可加载,实现自动补全和历史命令加载。
- 开启python时,运行tab.py
UnicodeDecodeError问题解决
-
- 每次开启python,都会报错
Failed calling sys.__interactivehook__
...
UnicodeDecodeError: 'gbk' codec can't decode byte 0xb8 in position 18: illeg
- 2.这是由于读取history文件时的编码出现问题。解决方案
在文件目录下C:\Users\shenlei\AppData\Local\Programs\Python\Python37\Lib\site-packages\pyreadline\lineeditor
找到history.py,打开之后在第82行,读取history的open函数后面加上编码格式for line in open(filename, 'r', encoding='UTF-8'):
指定UTF-8编码格式,就可以排除错误。
上一篇: PHP实现检测当前字符编码并转码的方法