最近Jupyter补全失灵报错的问题
前一段时间将Jupyter更新到最新版,在使用的时候发现tab补全失灵了,并且后台终端出现了一长串的报错。报错原因是因为 column 参数,往上看 column 参数位于 IPython 的某个文件内的某行,在某个函数内。知道了出现错误的原因,就可以顺藤摸瓜尝试解决它。
解决办法当然不要太复杂,能一步到位就一步到位。所以首先试试回退版本,笔者索性就直接退回到了 IPython 7.0。
使用命令ipython --version
查看当前 ipython 版本,pip install ipython==7
命令将安装 ipython 7.0 版本。
ipython --version 7.19.0 pip install ipython==7 ... Successfully installed ipython-7.0.0 ipython --version 7.0.0
启动 jupyter 发现补全功能恢复正常了。
关于启动目录想说的话
再附上一点想说的话,设置 jupyter 启动路径有两种方式,一种使用参数--notebook-dir
设置,另一种是修改配置文件[^1]。笔者将在下文简单介绍两种方式,并给出合适的建议。
一、参数 --notebook-dir 带目录启动
使用如下命令启动 jupyter notebook,
表示要打开的目录。
jupyter notebook --notebook-dir
二、修改配置文件
jupyter notebook --generate-config
运行上述命令,会给出如下结果:
Writing default config to: ...\.jupyter\jupyter_notebook_config.py
打开 jupyter_notebook_config.py 文件,定位到c.NotebookApp.notebook_dir
语句行,删除语句前面的#
符和空格,在双引号中间写入目录,关闭并保存文件。使用jupyter notebook
启动即可。
Anaconda用户参考:
https://zhuanlan.zhihu.com/p/48962153
使用参数命令行太长,但是可以灵活选择。使用配置文件如同设置了默认的启动路径,缺少灵活性,但是也可以使用参数弥补。
如果有多个文件夹存有 ipynb 文件,并且经常使用,使用参数就显得太麻烦了,修改配置文件更加达不到想要的效果,此处提出解决办法以供参考,即通过 cmd 文件折中使用命令。
>>> fp = 'C:/Windows/ipynb.cmd' >>> text = r'''@echo 正在打开 ipynb @echo off jupyter notebook --notebook-dir C:\Users\ipynb ''' >>> with open(fp, 'w', encoding='ansi') as f: ... f.write(text)
注意:
1.要使用 Python 在 Windows 文件夹中写入文件,需要使用管理员权限打开 Python。在运行窗口中输入 python,使用ctrl+shift+enter打开。也可以在开始菜单中用鼠标右击 Python,以管理员身份运行。
2.如果在 cmd 文件中有中文字,必须使用 ANSI 编码格式保存,否则在终端窗口中会出现中文乱码。
在终端窗口中输入ipynb
即可启动。
最后,仅供参考,毕竟各自有各自的需求,例如对于喜欢用鼠标的小伙伴,就可以将这种文件放入启动菜单或者桌面,不想放入 Windows 目录的也可以放在其他路径里,添加一下环境变量即可。
总结
- 关于最近 Jupyter 补全失灵的解决办法,回退 IPython 版本至 7.0 即可。
- 设置多个 Jupyter 的启动路径,使用 cmd 文件折中使用参数。
本文作者:四杆老烟枪
声明:本文为 脚本之家专栏作者 投稿,未经允许请勿转载。