当前位置:   article > 正文

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

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,并出现代码提示推荐。

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/731588
推荐阅读
相关标签
  

闽ICP备14008679号