Jupyter Lab配置: 代码补全 & 根目录设定 (基于conda)

深夜迅更:

        最近在学习人工智能,因为使用pycharm每次运行脚本都需要加载torch库太慢,因此想转jupyter进行学习记录。

        习惯了pycharm的代码提示,在jupyter自然不能落下,因此马上找到了jupyter-lsp来实现此效果。但没想到配置过程坑多,并不顺利,一些其他博客也没对细节展开介绍(可能版本久远有些差异),本博客使用的 jupyter版本4.0.10


1、conda环境搭建:

推荐在conda的base环境安装(方便启动,调用其他环境等)

python版本 > 3.8,详情见 jupyter-lsp git仓库文档

然后使用如下命令安装jupyterlab + 对应的lsp 代码提词器

conda install -c conda-forge "jupyterlab>=4.0.0,<5.0.0a0" jupyterlab-lsp
# or
pip install "jupyterlab>=4.0.0,<5.0.0a0" jupyterlab-lsp

同时需要安装server

pip install "python-lsp-server[all]"

2、Jupyter-Kernel添加:

终端使用 jupyter lab 启动(如果是notebook则是 jupyter notebook 启动)

因为我们使用conda,需要将conda环境作为kernel(内核)添加给jupyter

内核也可以理解为python虚拟环境。

比如现在我们有 base 、 ann 两个环境,要把他们添加进 jupyter-kernel

# 启动base 环境,并安装ipykernel库 (jupyter环境调用的接口库)
conda activate base
pip install ipykernel 
# 将base环境注册到jupyter-kernel,命名base
python -m ipykernel install --user --name=base

# 启动ann环境,并安装ipykernel库 (jupyter环境调用的接口库)
conda activate ann
pip install ipykernel 
# 将ann环境注册到jupyter-kernel,命名ANN (可以与环境名称不同)
python -m ipykernel install --user --name=ANN

这样就完成了conda虚拟环境的注册,jupyter里也可以使用conda环境啦。

注意必须在需要注册的虚拟环境下完成 ipykernel安装+当前环境注册的步骤

3、配置代码提示补全:

常见的配置博客诸如:

jupyter lab 代码提示/代码补全插件:jupyter lsp 配置教程 + 开启 Hinterland mode_jupyterlab-lsp-CSDN博客

上述博客年头久远,仅完成这样的配置是不行的。

注意:完成1、conda环境配置 后基本上也不需要跟着这篇博客来了,我们都做过了,只需要在jupyter的插件里点击“yes”开启插件,并完成lsp提词器的build即可;

其欠缺的步骤在如下issue被找到:

Continuous hinting doesn't work · Issue #1011 · jupyter-lsp/jupyterlab-lsp (github.com)

博客里包含了这一步,我们也需要做一下,勾选允许连续补全题词:

主要的缺失步骤见下图:

记得把蓝色划线的 "Enable autocompletion" 勾选打开!否则提词无效!

推荐左上角搜索框搜索 completion

可以看到他们两个的icon图标是不一样的——不是一个东西

一个是菜单:允许连续提词

一个是螺钉:允许自动补全(下图)

这样就完成啦!

感悟

真是有的细节知道了就几分钟的事情,不知道就查几个小时!太难受了!故深夜速记博客一篇!以防今后忘记。

  • 19
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在JupyterLab中,可以使用IJava内核来实现Java代码补全。首先,确保已经安装了IJava内核,可以通过以下命令安装: ``` !conda install -c conda-forge java !conda install -c conda-forge/label/cf202003 java !conda install -c conda-forge/label/cf201901 java !conda install -c conda-forge/label/cf201812 java !conda install -c conda-forge/label/cf201807 java !conda install -c conda-forge/label/cf java !conda install -c conda-forge/label/broken java !conda install -c conda-forge/label/borken java !conda install -c conda-forge/label/rc java !conda install -c conda-forge/label/dev java ``` 然后,在JupyterLab中创建一个新的Notebook,并选择IJava内核。接下来,可以编写Java代码,并使用Tab键触发代码补全代码补全功能将显示可用的Java类、方法和变量等。 请注意,IJava内核需要Java运行时环境(JRE)或Java开发工具包(JDK)。如果你尚未安装Java,请先安装它。 ### 回答2: JupyterLab是一种基于Web的交互式开发环境,它支持多种编程语言,包括Python、R、Julia等。然而,对于Java代码来说,在JupyterLab中并没有原生的补全功能。这是由于Java的特殊性:Java是一种编译型语言,需要经过编译器的处理才能获得补全信息。 但是,我们可以通过一些其他步骤来实现在JupyterLab补全Java代码的功能。下面是一种可能的解决方案: 1. 首先,你需要安装并配置Java语言服务器。Java语言服务器是一种能够提供Java代码补全和其他功能的工具。目前比较常用的Java语言服务器有Eclipse JDT Language Server和Microsoft Java Language Server。 2. 其次,在JupyterLab中安装并启动Java语言服务器的插件。你可以在JupyterLab的扩展商店中搜索并安装相应的插件。 3. 完成插件安装后,你可以打开一个新的JupyterLab文件,选择Java语言作为代码类型。在编辑器中输入Java代码,通过按下Tab键或其他快捷键,就可以触发代码补全功能。 需要注意的是,这种方法仍然有一些局限性。因为Java语言的特性,对于某些复杂的代码结构,补全功能可能存在一定的不准确性。而且Java语言服务器的性能也会对补全功能的准确性和速度有一定影响。 总的来说,虽然JupyterLab本身不提供原生的Java代码补全功能,但通过使用Java语言服务器插件,我们可以在JupyterLab中实现类似的功能。这样可以提高我们在JupyterLab中开发和测试Java代码的效率和便捷性。 ### 回答3: JupyterLab是一种基于Web的交互式开发环境,用于进行各种编程任务。它提供了对不同编程语言的支持,包括Python、R、Julia和Java等。 然而,JupyterLab的默认设置并不提供对Java代码的完全支持。这是因为Java是一种静态类型语言,需要进行编译才能执行。与动态类型语言(如Python)相比,Java代码的自动补全要复杂得多。 然而,如果你希望在JupyterLab中使用Java代码并获得代码补全的功能,有一些方法可以尝试: 1. 使用Java内核:JupyterLab可以使用不同的内核来执行不同的编程语言。虽然Java内核不是JupyterLab的默认内核,但可以通过安装合适的Java内核来为Java代码提供支持。例如,使用IJava内核可以在JupyterLab中编写和执行Java代码,并获得部分代码补全功能。 2. 使用插件:JupyterLab支持使用插件来增强其功能。可能有一些插件能够提供对Java代码的更全面的自动补全支持。你可以在JupyterLab的插件存储库中搜索这些插件并进行尝试。 3. 结合其他工具:如果你希望在JupyterLab中使用Java代码并获得完全的代码补全功能,你可以考虑结合其他集成开发环境(IDE)或编辑器使用。例如,你可以在JupyterLab中使用代码单元格编写Java代码,并在其他IDE中打开相同的Java项目,并从IDE中复制粘贴代码以获得更完整的补全功能。 需要注意的是,Java的静态类型特性使得完全的代码补全JupyterLab中有限。如果你需要Java代码的完全补全功能,推荐使用专门为Java开发设计的IDE,如Eclipse或IntelliJ IDEA。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值