为Anaconda虚拟环境安装notebook插件nbextension,实现代码提示补全【全网最可靠】

真实场景

       首先,我是在学习pytorch框架的时候,用anaconda创建了一个虚拟环境 torch_test ,以免污染了我的 base 环境。然后在虚拟环境 torch_test 中安装了jupyter notebook,还有pytorch相关的包来写一些样例代码。但是,由于我对pytorch的API不是很熟悉,所以没有IDE的代码提示,很不方便。所以我想为我的虚拟环境 torch_test 中的notebook安装代码提示插件。于是按照网上的方法为notebook安装nbextension插件,但是无论我怎么弄,nbextension的图标就是无法显示。网上找了N多种办法,没有一个成功。所以自己捣鼓,弄了半天终于搞定了问题。接下来直接介绍解决办法。

解决办法

大致的流程:为虚拟环境 torch_test 创建一个新的jupyter的Kernel,然后在anaconda的 base 环境中安装nbextension插件并切换为虚拟环境 torch_test 中新建的Kernel。这样就可以在 base 环境下调用虚拟环境 torch_test 以及nbextension提供的代码提示功能。

(因为我在捣鼓过程中踩了很多坑,所以请大家一定要严格按照我介绍的步骤依次进行,以免踩坑)

第1步:在anaconda的 base 环境中安装notebook和插件nbextension

为了防止出错,如果你之前在anaconda的虚拟环境中安装了 nbextension 相关的插件包,先全部卸载掉,不要在虚拟环境中安装nbextension

  • 安装notebook:
pip install notebook
  • 安装插件nbextension:

在Anaconda的Prompt终端中依次执行以下命令(详情可参考:为Jupyter Notebook安装扩展并启用Configurator):

pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user
pip install jupyter_nbextensions_configurator
jupyter nbextensions_configurator enable --user
  •  开启nbextension插件

现在在 base 环境中进入notebook,可以看到nbextension工具栏,然后勾选CodefoldingHinterland即可开启代码提示功能。

 第2步:在anaconda的虚拟环境中创建一个jupyter的Kernel

  • 安装ipykernel

进入你自己的虚拟环境,比如我用来学习pytorch而创建的虚拟环境 torch_test,安装ipykernel(详情可参考:jupyter 添加不同内核

pip install ipykernel
  • 为 Jupyter 添加新的Kernel
python -m ipykernel install --name torch_test --display-name "torch_test_kernel" --prefix "Anaconda3"

 --name torch_test 中的 torch_test 是自定义的Kernel保存的名字;

--display-name "torch_test_kernel" 中的 torch_test_kernel 是自定义的Kernel页面中显示的名字;

--prefix "Anaconda3" 中的 Anaconda3 是自己指定的Kernel保存的路径。我把Kernel保存在Anaconda3的路径下,具体是保存到了路径"\Anaconda3\share\jupyter\kernels\"下。

强烈建议Kernel保存在Anaconda3的路径中,以免出错。

 这时候你可以在路径"\Anaconda3\share\jupyter\kernels\"下查看到新创建的Kernel

  • 添加DLL文件

为了防止后面切换到虚拟环境中的Kernel时,各种依赖的库找不到,将虚拟环境中路径 Anaconda3\envs\torch_test\Library\bin 中的 所有文件 全部复制到路径 Anaconda3\envs\torch_test 中。

          

  •  添加环境变量

为了防止后面出错,我们将anaconda的 base 环境和对应的虚拟环境 torch_test 添加到系统的环境变量中。(详情可参考:添加系统环境变量

在用户变量的Path和系统变量的Path中都添加上文件路径 Anaconda3\Library\bin 和文件路径 Anaconda3\envs\torch_test\Library\bin 即可。

注:如果没有复制DLL文件或添加环境变量,后面可能会出现这个报错:

ImportError: DLL load failed while importing error: 找不到指定的模块。

第3步:在anaconda的 base 环境中切换notebook的Kernel

  • 切换Kernel

切换到anaconda的 base 环境,打开notebook,在Kernel工具栏,切换到你想要的虚拟环境中的Kernel即可。

  • 安装jedi包(此步骤非必要)

如果你发现代码提示仍然无效,或者Anaconda的Prompt终端中出现以下报错

TypeError: __init__() got an unexpected keyword argument 'column'

可能是你的Anaconda虚拟环境中的 jedi 包不兼容问题。只需在对应的虚拟环境中重新安装 jedi 的以下版本(详情可参考:Last jedi release (0.18.0) is incompatible with ipython (7.19 and 7.18 tested); reason - column arg was deprecated, and now removed #12740):

pip install jedi==0.17.2

 撒花完结!!!到此,终于成功实现了在Anaconda的 base 环境中,切换到虚拟环境中创建的Kernel,并出现代码提示推荐。

如果有什么问题,欢迎联系我。希望能够帮助到大家。

  • 7
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值