我安装了Anaconda(使用Python 2.7),并在一个名为Tensorflow的环境中安装了Tensorflow。我可以在这个环境中成功导入Tensorflow。

问题是Jupyter Notebook无法识别我刚刚创建的新环境。无论我是从GUI Navigator还是tensorflow env中的命令行启动Jupyter Notebook,菜单中只有一个名为Python [Root]的内核,并且不能导入tensorflow。当然,我多次点击这个选项,保存文件,重新打开,但这些都没有帮助。

奇怪的是,当我打开Jupyter首页上的Conda标签时,我可以看到这两个环境。但是当我打开文件选项卡,并尝试新建一个笔记本时,我仍然只有一个内核。

我看了这个问题: 连接Conda环境与Jupyter Notebook 但是在我的电脑上没有~/Library/Jupyter/kernels这样的目录!这个Jupyter目录只有一个称为runtime的子目录。

我真的很困惑。Conda环境应该自动成为内核吗?(我在https://ipython.readthedocs.io/en/stable/install/kernel_install.html上手动设置了内核,但被告知没有找到ipykernel。)


当前回答

我在使用vscode服务器时遇到了这个问题。 在名为“base”的conda环境中,我安装了1.2.0版本的opennmt-py,但我想在conda环境“opennmt2”中运行jupyter notebook,其中包含使用opennmt-py 2.0的代码。 我通过在conda(opennmt2)中重新安装jupyter解决了这个问题。

conda install jupyter

重新安装后,在opennmt2环境中执行jupyter notebook将执行新安装的jupyter

where jupyter 
/root/miniconda3/envs/opennmt2/bin/jupyter
/root/miniconda3/bin/jupyter

其他回答

我也遇到了同样的问题,我的新conda环境myenv不能被选为内核或新笔记本。在env中运行jupter notebook也得到了相同的结果。

我的解决方案,以及我了解到Jupyter笔记本如何识别conda-envs和内核:

使用conda将jupyter和ipython安装到myenv:

conda install -n myenv ipython jupyter

在那之后,在任何env之外运行jupter notebook时,将myenv与我以前的环境一起列为内核。

Python [conda env:old]
Python [conda env:myenv]

启动环境后运行笔记本:

source activate myenv
jupyter notebook

隐藏所有其他环境内核,只显示我的语言内核:

python 2
python 3
R

只要在你的新环境中运行conda install ipykernel,只有这样你才能得到一个带有这个env的内核。即使你在每个envs中安装了不同的版本,它也不会再次安装jupyter笔记本。你可以从任何环境开始你的笔记本,你将能够看到新添加的内核。

仅使用环境变量:

python -m ipykernel install --user --name $(basename $VIRTUAL_ENV)

我不认为其他答案是工作了,因为conda停止自动设置环境作为jupyter内核。您需要手动为每个环境添加内核,方法如下:

source activate myenv
python -m ipykernel install --user --name myenv --display-name "Python (myenv)"

如下所示:http://ipython.readthedocs.io/en/stable/install/kernel_install.html#kernels-for-different-environments 请参见本期。

附录: 您应该能够使用conda install nb_conda_kernels安装nb_conda_kernels包来自动添加所有环境,请参阅https://github.com/Anaconda-Platform/nb_conda_kernels

可能的特定渠道问题

我有这个问题(再次),原来我从conda-forge频道安装;将其移除并从蟒蛇通道重新安装,而不是为我修复它。

更新:我在一个新的env中再次遇到了同样的问题,这次我确实从anaconda通道安装了nb_conda_kernels,但我的jupyter_client来自conda forge通道。卸载nb_conda_kernels并重新安装会将其更新到更高优先级的通道。

所以请确保你从正确的渠道安装:)