关于Jupyter Notebook无法自动补全(Autocompletion),报错TypeError: __init__() got an unexpected keyword argument 'column' 的解决方案

问题描述:

最近在linux服务器上装了jupyter notebook希望远程访问使用,安装完成后发现notebook的TAB自动补全功能不能用。这是一件很难受的事情,python这么多库的用法不可能一一记住,所以必须解决这个问题。

在谷歌百度上寻求解决方案,发现很多文章提到安装nbextensions插件,但很遗憾,我尝试之后发现这个方法无法解决问题。

最后我在pycharm上运行jupyter的时候发现了问题的根源。当在pycharm中输入函数名并补全代码时,jupyter的控制台会提示如下的错误(但由于pycharm的强大功能,此时仍然能够完成代码补全):

File "....../lib/python3.6/site-packages/jedi/api/__init__.py", line 726, in __init__
project=Project(Path.cwd()), **kwds)
TypeError: __init__() got an unexpected keyword argument 'column'

于是让我联想到,直接使用jupyter notebook时无法按TAB补全可能也是这个错误导致的。查看服务器上的jupyter日志发现似乎也有这个报错。

最后,在github上ipython项目的issue中找到了解决方法:

https://github.com/ipython/ipython/issues/12740

解决方案:

该问题是ipython版本和jedi版本不符造成的(从错误提示中也能看出来与jedi有关)。

在这种情况下,直接从shell控制台运行ipython也不能使用TAB键补全,按下TAB没有任何反应。

由于ipython 7.19及以下的版本不支持最新的jedi 0.18.0,就会出现错误。查看ipython版本,嗯,版本号7.16.1,那么问题就找到了。

由于我的Python版本是3.6.9,不能升级ipython到7.20以上(需要python3.7以上的版本),只能选择从jedi入手。网上有博客称jupyter使用不需要jedi所以可以直接卸载解决问题,我没有尝试是否可行。我这里选择将jedi降低一个版本(到0.17.0),即可解决问题

pip3 install jedi==0.17.0

完成之后,先试试shell运行ipython,TAB键已经出现代码提示和补全功能。然后打开jupyter notebook,同样能够使用TAB键补全了,问题解决!

关于Jupyter Notebook无法自动补全(Autocompletion),报错TypeError: __init__() got an unexpected keyword argument 'column' 的解决方案的更多相关文章

  1. [转载]Jupyter Notebook中自动补全代码

    原文地址:https://yq.aliyun.com/articles/667928 在公众号之前的文章中,已经介绍了在Jupyter Notebook中设置主题以及输出代码文件到pdf文件中,本文来 ...

  2. jupyter notebook安装/代码补全/支持golang 踩坑记

    安装(不要用root) 安装anaconda3,然后ln -s bin目录下的jupyter命令到/usr/bin目录下 生成密码备用 敲ipython进入交互终端 In [1]: from note ...

  3. jupyter notebook 代码自动补齐插件

    安装: . pip install jupyter_contrib_nbextensions -i https://pypi.mirrors.ustc.edu.cn/simple 2. jupyter ...

  4. 今天我的jupyter notebook打不开了,报错原因'No module named 'zmq.eventloop'

    今天我的jupyter notebook打不开了,就是那种一打开出现黑色界面就退出的那种,惊恐爬上了我的面颊. 找了一个小时,试了好几种办法(包括别人说的什么把属性里面后面的%%的去掉)终究无果 打开 ...

  5. eclipse配置代码自动补全auto-completion

    你如果使用的是JAVA EE的模式,就这样配置: 1. Window>Preferences>Java>Editor>Content Assist>Auto Activa ...

  6. Jupyter Notebook自动补全

    大多数程序员都非常熟悉不同的自动补全工具.然而,我注意到许多数据科学家还没有使用它.如果你是他们中的一员,是时候开始使用这个提高效率的工具了 什么是自动补全? 它是你的编程环境提供的一种功能,用于完成 ...

  7. Jupyter Notebook 设置黑色背景主题、字体大小、代码自动补全

    1.背景主题.字体大小设置 安装Jupyter主题: pip install jupyterthemes 然后,更新Jupyter主题: pip install --upgrade jupyterth ...

  8. jupyter notebook自动补全功能实现

    Jupyter notebook使用默认的自动补全是关掉的.要打开自动补全,需修改默认配置. 命令行中输入:ipython profile create 以上命令会在~/.ipython/profil ...

  9. Jupyter notebook 自动补全

    Jupyter notebook 自动补全   Jupyter notebook使用默认的自动补全是关掉的.要打开自动补全,需修改默认配置.  ipython profile create 以上命令会 ...

随机推荐

  1. Skye无人机刷Betaflight详细图文教程

    ​前言 首先十分感谢B站TASKBL up主的视频教程以及他的耐心指导,视频链接Skye 原机主板刷BetaFlight 参考教程_哔哩哔哩_bilibili.整个改造过程耗时三天,现把改造过程以及遇 ...

  2. 洛谷P1049 [NOIP2001 普及组] 装箱问题

    本题就是一个简单的01背包问题   1.因为每个物品只能选一次,而且要使箱子的剩余空间为最小.所以可以确定属性为 MAX 2.由于是从n个物品里面选i个物品 那么就是选出的i个物品的空间总和要尽可能的 ...

  3. Java有没有goto?

    goto是Java中的保留字,暂时还不是Java的关键字.

  4. 用 Java 写一个单例类?

    饿汉式单例 public class Singleton { private Singleton(){} private static Singleton instance = new Singlet ...

  5. memcached 是怎么工作的?

    Memcached 的神奇来自两阶段哈希(two-stage hash).Memcached 就像一 个巨大的.存储了很多<key,value>对的哈希表.通过 key,可以存储或查询任意 ...

  6. VMware ESXi安装NVIDIA GPU显卡硬件驱动和配置vGPU

    一.驱动软件准备:从nvidia网站下载驱动,注意,和普通显卡下载驱动地址不同. 按照ESXi对应版本不同下载不同的安装包.安装包内含ESXi主机驱动和虚拟机驱动. GPU显卡和物理服务器兼容查询:( ...

  7. pandas学习总结

    什么是pandas pandas数据读取 03. Pandas数据结构 Pandas查询数据的几种方法

  8. 记一些css 3效果

    半透明边框 background-clip: 规定背景的绘制区域 .div { width: 200px; height: 200px; background: blue; border: 10px ...

  9. 用JS写一个计算器(兼容手机端)

    先看成果:1.PC端2. 首先确立html,有哪些东西我们要知道.布局大概的样子在心里有个数 <!DOCTYPE html> <html> <head> <m ...

  10. 什么是Viewport Meta(width详解)及在手机上的应用

    viewport是专为手机浏览器设计的一个meta标签: 有些屏幕很小有智能手机,但分辩率却可以做得很大,比如小米4的默认分辨率为:1920*1080,比许多电脑桌面的都还大,传统桌面网站直接放到手机 ...