赞
踩
首先,我是在学习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提供的代码提示功能。
(因为我在捣鼓过程中踩了很多坑,所以请大家一定要严格按照我介绍的步骤依次进行,以免踩坑)
为了防止出错,如果你之前在anaconda的虚拟环境中安装了 nbextension 相关的插件包,先全部卸载掉,不要在虚拟环境中安装nbextension
pip install notebook
在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
现在在 base 环境中进入notebook,可以看到nbextension工具栏,然后勾选Codefolding和Hinterland即可开启代码提示功能。
进入你自己的虚拟环境,比如我用来学习pytorch而创建的虚拟环境 torch_test,安装ipykernel(详情可参考:jupyter 添加不同内核)
pip install ipykernel
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
为了防止后面切换到虚拟环境中的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: 找不到指定的模块。
切换到anaconda的 base 环境,打开notebook,在Kernel工具栏,切换到你想要的虚拟环境中的Kernel即可。
如果你发现代码提示仍然无效,或者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,并出现代码提示推荐。
如果有什么问题,欢迎联系我。希望能够帮助到大家。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。