前言:本人各種庫(kù)的安裝都是用的國(guó)內(nèi)源踱葛,但是并非都來自同一個(gè)源(使用了豆瓣源、清華源等)。導(dǎo)致我的jupyter里按tab無法自動(dòng)補(bǔ)齊挨厚。經(jīng)過嘗試,排除了以下可能:
- 快捷鍵設(shè)置:編輯模式中的Tab快捷鍵是自帶的糠惫、無法修改的疫剃!
- 插件Nbextensions中Hinterland:已添加,依舊無法補(bǔ)齊硼讽;但是打()會(huì)提示內(nèi)部選項(xiàng)巢价!
- 也不是ipython_config.py文件中的設(shè)置問題:
c.Completer.greedy = True
c.Completer.jedi_compute_type_timeout = 400
c.Completer.use_jedi = True
核心問題:不同庫(kù)的版本號(hào)不匹配!!H蓝恪3蔷铡!
出問題時(shí)/修改后的相關(guān)庫(kù)的版本號(hào):
- python:3.8.5
- ipython:7.11.0 —— 最后升級(jí)為:7.19.0
- Werkzeug:1.0.1
- jupyter-core:4.7.0
- jedi:0.18.0 —— 最后降級(jí)為:0.17.2
容易出問題的版本號(hào)搭配:
- 當(dāng)python在3.8.x時(shí)碉克,ipython最好直接更新為最新版本(7.11.x在import導(dǎo)入庫(kù)時(shí)出現(xiàn):TypeError: required field "type_ignores" missing from Module的錯(cuò)誤)役电!
- ipython和Werkzeug是緊密相關(guān)的,建議二者都直接升到最新版(若一個(gè)老版一個(gè)新版棉胀,也容易出現(xiàn)上面的問題法瑟,或Tab失效!)唁奢;
- jedi和ipython霎挟、jupyter中的Tab補(bǔ)全功能關(guān)系密切!其中jedi不建議升級(jí)最新版(最新版在github上已經(jīng)有issues了麻掸,所有老穩(wěn)定版本肯定可以繼續(xù)使用tab功能)酥夭;
補(bǔ)充:
- jupyter其實(shí)和ipython本質(zhì)是一樣的(只不過jupyter有web界面更好看而已);所有測(cè)試tab功能脊奋、import導(dǎo)入庫(kù)是否正常等功能時(shí)熬北,不必打開jupyter(打開比較麻煩,關(guān)閉更麻煩)诚隙,只用在ipython中測(cè)試即可讶隐!—— 但不用再python中測(cè)試!
- 沒必要改變python的版本久又,只需改變配套庫(kù)的版本號(hào)即可巫延!肯定有匹配能用的版本號(hào)!
- 對(duì)于一個(gè)庫(kù)的升降級(jí)地消,只用(可升可降):pip install -upgrade xxx=0.71.0
- 如果用國(guó)內(nèi)源炉峰,不要開科學(xué)xx上網(wǎng)software,否則會(huì)一直retry脉执!