-
上面主要问题的步骤是nb_conda_kernels 方式。在基本环境中安装 nb_conda_kernels 后,从基本环境运行的任何笔记本都会自动显示安装了 ipykernel 的任何其他环境中的内核。我们只需要一台 jupyter 笔记本,最好安装在基础环境中。
-
不是理想的方式:“快速而肮脏的方法”是在每个环境中安装jupyter笔记本。 “如果您在任何环境中安装 jupyter 并从该环境运行 jupyter 笔记本,笔记本将使用活动环境中的内核。内核将以默认名称 Python 3 显示,但我们可以通过执行以下操作来验证其是否有效。”
导入操作系统
打印(os.environ['CONDA_DEFAULT_ENV'])
- The "通常或简单的方法”是“单独注册您想要在内核列表中显示的每个环境。”无需安装 nb_conda_kernels。
创建新环境后,例如python3.11
`
conda activate python3.11 # make it active
conda install ipykernel # needed for each env
conda install ipywidgets # for additional jupyter functionalities
python -m ipykernel install --user --name python3.11 --display-name "Python 3.11 env" # will install kernelspec python3.11
`
就是这样,当运行 jupyter Notebook 时,人们会看到“Python 3.11 env”作为可供选择的环境之一。
NOTE:
这种简单方法的问题是使用 !喜欢:
!python --version
!pip3 list
!conda list
将始终引用 jupyter Notebook 启动的环境,无论 jupyter Notebook 当前选择(正在使用)的内核版本是什么。
所以如果我们这样做:
!pip3 install --upgrade numpy
numpy 将在启动 jupyter Notebook 的环境中安装或升级。例如,如果我们尝试根据条件以编程方式升级 jupyter Notebook 本身内的包,这就是一个问题。
相反,如果我们使用 nb_conda_kernels 方式,则上述命令将始终在活动内核的环境中安装/升级,无论 jupyter Notebook 是从哪个环境启动的。
因此,如果在除基础环境之外的环境中安装软件包,则需要注意这一点。
就我个人而言,我使用 nb_conda_kernels 方式(nb_conda_kernels)和通常/简单的方式。只需按照通常方式的所有步骤进行操作,然后在运行 jupyter notebook 之前的最后一步是:
# make sure you are in base env
conda install nb_conda_kernels
所以我在 Jupyter Notebook 中的内核列表如下所示:
Python 3(ipykernel)
Python3.11环境
Python [conda 环境:python3.11]
etc.
我可以选择我想要的任何内核,它会工作,同时记住我上面提到的行为。
如果我希望 !pip3 install --upgrade 在基础中的包上工作,同时使用版本与基础不同的内核(例如 Python 3.8),我将从基础环境启动笔记本,并选择内核“Python3” .11环境”。
如果我希望 !pip3 install --upgrade 在某个环境的环境中的包上工作,我可以从任何环境启动笔记本,并选择内核“Python [conda env:python3.11]”。