前言:本人各种库的安装都是用的国内源,但是并非都来自同一个源(使用了豆瓣源、清华源等)。导致我的jupyter里按tab无法自动补齐。经过尝试,排除了以下可能:
- 快捷键设置:编辑模式中的Tab快捷键是自带的、无法修改的!
- 插件Nbextensions中Hinterland:已添加,依旧无法补齐;但是打()会提示内部选项!
- 也不是ipython_config.py文件中的设置问题:
c.Completer.greedy = True
c.Completer.jedi_compute_type_timeout = 400
c.Completer.use_jedi = True
核心问题:不同库的版本号不匹配!!!!!
出问题时/修改后的相关库的版本号:
- python:3.8.5
- ipython:7.11.0 —— 最后升级为:7.19.0
- Werkzeug:1.0.1
- jupyter-core:4.7.0
- jedi:0.18.0 —— 最后降级为:0.17.2
容易出问题的版本号搭配:
- 当python在3.8.x时,ipython最好直接更新为最新版本(7.11.x在import导入库时出现:TypeError: required field "type_ignores" missing from Module的错误)!
- ipython和Werkzeug是紧密相关的,建议二者都直接升到最新版(若一个老版一个新版,也容易出现上面的问题,或Tab失效!);
- jedi和ipython、jupyter中的Tab补全功能关系密切!其中jedi不建议升级最新版(最新版在github上已经有issues了,所有老稳定版本肯定可以继续使用tab功能);
补充:
- jupyter其实和ipython本质是一样的(只不过jupyter有web界面更好看而已);所有测试tab功能、import导入库是否正常等功能时,不必打开jupyter(打开比较麻烦,关闭更麻烦),只用在ipython中测试即可!—— 但不用再python中测试!
- 没必要改变python的版本,只需改变配套库的版本号即可!肯定有匹配能用的版本号!
- 对于一个库的升降级,只用(可升可降):pip install -upgrade xxx=0.71.0
- 如果用国内源,不要开科学xx上网software,否则会一直retry!