Jupyter Notebook和虚拟环境的奇怪行为

时间:2020-03-01 19:05:01

标签: python jupyter-notebook virtualenv jupyter

我在Ubuntu 16-04(LTS发行版)上安装了anaconda python发行版,并且我想在jupyter笔记本上使用虚拟环境,但是却出现了一些奇怪的现象:

conda update conda

conda create -n myvirtenv python=3.6 anaconda

conda activate myvirtenv

为jupyter添加了虚拟环境

python -m ipykernel install --user –name=myvirtenv

当我从 default 环境启动jupyter笔记本并获取python版本时:

import sys

print(sys.version)
3.7.4 (default, Aug 13 2019, 20:35:49) 
[GCC 7.3.0]

这与预期的一样,但是当我进入内核>更改内核并选择 myvirtenv 时,我会得到相同的输出。

当我激活 myvirtenv 并使用默认内核启动jupyter notebook时,我得到以下输出:

print(sys.version)
3.6.10 |Anaconda, Inc.| (default, Jan  7 2020, 21:14:29) 
[GCC 7.3.0]

当我将内核更改为 myvirtenv 时,得到以下输出:

print(sys.version)
3.7.4 (default, Aug 13 2019, 20:35:49) 
[GCC 7.3.0]

我希望当我从 default 环境或 myvirtenv 启动jupyter notebook时,选择内核myvirtenv它将使用python 3.6.10,而默认内核将使用python 3.7.4?如何确保内核 myvirtenv 使用正确的虚拟环境?

1 个答案:

答案 0 :(得分:0)

我找到了:

kernel.json文件指向错误的python:

{
 "argv": [
  "/home/****/anaconda3/bin/python",
  "-m",
  "ipykernel_launcher",
  "-f",
  "{connection_file}"
 ],
 "display_name": "myvirtenv",
 "language": "python"
}

将其更改为:

{
 "argv": [
  "/home/****/anaconda3/envs/myvirtenv/bin/python",
  "-m",
  "ipykernel_launcher",
  "-f",
  "{connection_file}"
 ],
 "display_name": "myvirtenv",
 "language": "python"
}