jupyter虚拟环境智能代码提示

背景
为了学习tensorflow 2.0 ,在不影响base环境的情况下,创建了一个虚拟环境,想使用jupyter 的智能代码提示功能,网上找了很多博客去都是简单的说安装nbextension插件,勾选Hinterland,但是这个只适用于base环境,新建的虚拟环境即使勾选了Hinterland也是无法智能提示代码。以下是爬坑路的总结:

1.base环境安装nbextension插件,勾选Hinterland,虚拟环境前往不要安装此插件,不然会提示冲突,导致虚拟环境无法使用智能代码提示。

base环境操作如下:

pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user
pip install --user jupyter_nbextensions_configurator
jupyter nbextensions_configurator enable --user

在 base 环境中进入notebook,可以看到nbextension工具栏,然后勾选Codefolding和Hinterland即可开启代码提示功能。
jupyter虚拟环境智能代码提示_第1张图片

2.创建虚拟环境

输入 conda create -n tensorflow python=3.6,创建tensorflow环境

输入activate tensorflow ,激活环境
1、切换到要添加的虚拟环境,确认是否安装 ipykernel

python -m ipykernel --version

安装ipykernel: python -m pip install ipykernel

为 Jupyter 添加内核
python -m ipykernel install --user --name=tensorflow --display-name tensorflow
这种方式会默认添加到: C:\ProgramData\jupyter\kernels\tensorflow

此处建议指定Kernel保存的路径,代码如下:

python -m ipykernel install --name tensorflow --display-name tensorflow --prefix "D:\Anaconda3"

–name tensorflow 中的 tensorflow 是自定义的Kernel保存的名字;

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

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

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

查看kernel列表:jupyter kernelspec list

删除kernel:

jupyter kernelspec remove kernelname

添加DLL文件

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

添加环境变量

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

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

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

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

在anaconda的 base 环境中切换notebook的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,并出现代码提示推荐。

下面补充一些tensorflow2.0的安装

conda install --channel https://conda.anaconda.org/anaconda tensorflow==2.0.0

你可能感兴趣的:(机器学习,编辑器)