我刚刚开始使用 jupyter 笔记本进行我的开发过程。我首先创建一个新的 python 环境:
$ conda create -n testenv
然后激活它:
$ source activate testenv
并安装 python 内核模块:
$ pip install ipykernel
现在,模糊性开始了。我只想专门为我的活动环境创建一个新内核。根据文档,我做了:
$ python -m ipykernel install --user --name testenv --display-name "Python (testenv)"
有了这个,我相信我刚刚为要在 Jupyter Notebook 中使用的 testenv 环境创建了一个新的 Python 内核。现在,我想确认此信息并检查:
$ jupyter kernelspec list
Available kernels:
testenv /home/{{user}}/.local/share/jupyter/kernels/testenv
python2 /home/{{user}}/miniconda2/share/jupyter/kernels/python2
$ conda env list
# conda environments:
#
base /home/{{user}}/miniconda2
testenv * /home/{{user}}/miniconda2/envs/testenv
我希望看到我的内核安装在 testenv 环境中,例如:
/home/{{user}}/miniconda2/envs/testenv/kernels/testenv
我无法看到环境和环境如何内核结合在一起,我如何确认这些信息。
你几乎做对了! 困惑在于
jupyter kernelspec
命令不会将内核安装到特定的 conda 环境中。 相反,它会在你的用户目录中注册一个内核,该内核可以指向任何 Python 环境。
你运行的命令:
python -m ipykernel install --user --name testenv --display-name "Python (testenv)"
...实际上创建了一个名为“testenv”的内核,并将其链接到 激活该内核时 活动状态的 Python 环境,在本例中为你的“testenv”conda 环境。
这意味着当你从 Jupyter Notebook 中选择“Python (testenv)”内核时,它将使用你的“testenv”conda 环境中的 Python 解释器和软件包。
为了确认,你可以启动 Jupyter Notebook 并创建一个新的 notebook。 在“New”下拉菜单中,你应该看到“Python (testenv)”选项。 选择它,然后在一个单元格中运行以下代码:
import sys
print(sys.executable)
这将打印出正在使用的 Python 解释器的路径,该路径应指向你的“testenv”conda 环境。
总之,你不必看到内核安装在 conda 环境目录中。
jupyter kernelspec
命令创建一个指向你的 conda 环境的内核规范,当你从 Jupyter Notebook 中选择该内核时,它将使用正确的环境。