Jupyter内核使用的Python版本与Conda环境不同。

7

我无法将Jupyter内核链接到它们的父Conda环境。创建一个链接到Conda环境的新内核后,在Jupyter Lab中得到了一个不同版本的Python及其依赖项。

以下是我遵循的步骤:

使用以下命令创建一个Conda环境:

conda create -n nlp python=3.6

conda activate nlp

(nlp) ➜ ~ python --version

Python 3.6.9 :: Anaconda, Inc.

(nlp) ➜ ~ which python

/anaconda3/envs/nlp/bin/python

在环境中,使用以下命令创建一个Jupyter内核:

(nlp) ➜ ~ python -m ipykernel install --user --name=nlp

已安装kernelspec nlp至/Users//Library/Jupyter/kernels/nlp

检查为内核创建的json文件:

(nlp) ➜  ~ cat /Users/<username>/Library/Jupyter/kernels/nlp/kernel.json
{
 "argv": [
  "/anaconda3/envs/nlp/bin/python",
  "-m",
  "ipykernel_launcher",
  "-f",
  "{connection_file}"
 ],
 "display_name": "nlp",
 "language": "python"
}%

看起来它指向了Python的环境版本

但是当我启动Jupyter Lab并选择nlp内核时,我得到了一个不同版本的Python,并且一些依赖项缺失。

!python --version

Python 3.5.6 :: Anaconda, Inc.

!which python

/anaconda3/bin/python


nlp 是否已安装 ipykernel?您可以使用 conda list -n nlp ipykernel 进行检查。 - merv
1
是的,ipykernel已安装,您的命令输出如下:# packages in environment at /anaconda3/envs/nlp: # # Name Version Build Channel ipykernel 5.1.3 py37h39e3cac_0 - amrakm
3个回答

4
请您尝试以下步骤:
conda activate nlp
conda install ipykernel
ipython kernel install --name nlp --user 

在完成这些步骤后,请尝试在jupyter lab中将内核更改为“nlp”。

谢谢。


1
这个不起作用(nlp) ➜ ~ conda install ipykernel 正在解决环境: 完成 # 所有请求的软件包已经安装。 (nlp) ➜ ~ ipython kernel install --name nlp --user 已安装内核规范 nlp 在 /Users//Library/Jupyter/kernels/nlp 中 - amrakm
1
不,它是macOS。 - amrakm
请尝试创建一个新的conda环境,并按照上述步骤在该环境中安装ipykernel。 - Lakshmi - Intel

0

这种行为在Jupyter lab中实际上是正常的。 如果你运行

import sys
print(sys.version)
!python --version

在笔记本中,print语句将为您提供conda环境的Python版本,而第二个语句将为您提供基本环境的Python版本。
最简单的解决方法是在conda环境中简单地pip安装jupyterlab,然后在conda环境中运行jupyter lab。然后,新的“base”环境和conda环境之间不会存在Python版本不匹配的问题,这将有助于清除任何DLL问题。
这可能不是最佳实践,但当使用旧代码时,你必须做你必须做的事情。

0
你可以试试这个:
# in base env
conda install nb_conda_kernels
conda activate nlp
conda install ipykernel
conda install ipywidgets
# install kernelspec
python -m ipykernel install --user --name nlp --display-name "nlp env"

当你运行Jupyter Notebook时,你会看到两个NLP内核。请使用带有“Python [conda:env:nlp]”的那个内核。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接