Jupyter Notebook 内核与 conda 环境不同

Jupyter notebook kernel different from conda environment

我在尝试在 jupyter notebook 内核中重现 conda 环境时遇到问题。 我已经创建了一个 conda 环境,mlflow,通过激活它,我可以导入 mlflow,如下所示:

[ 12:36:18 ] ~ base ❯ conda activate mlflow
[ 12:36:21 ] ~ mlflow ❯ python
Python 3.7.0 (default, Jun 28 2018, 08:04:48) [MSC v.1912 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import mlflow
>>>

然后我继续在jupyter中安装内核,如:

python -m ipykernel install --name mlflow

但是,一旦进入 jupyter 的 mlflow 内核,我就无法导入相同的模块,mlflow。为什么会这样?它怀疑问题是 C:\Users\userx\AppData\Roaming\jupyter\kernels\mlflow\kernel.json 指向错误的 python:

{
 "argv": [
  "C:\Users\userx\Anaconda3\python.exe",
  "-m",
  "ipykernel_launcher",
  "-f",
  "{connection_file}"
 ],
 "display_name": "mlflow",
 "language": "python"
}

而它应该指向 mlflow 环境中的 python。但是,我尝试更改它,导致笔记本在启动时失败。

更多详情:

[ 12:39:27 ] ~ base ❯ jupyter --path
config:
    C:\Users\userx\.jupyter
    C:\Users\userx\Anaconda3\etc\jupyter
    C:\ProgramData\jupyter
data:
    C:\Users\userx\AppData\Roaming\jupyter
    C:\Users\userx\Anaconda3\share\jupyter
    C:\ProgramData\jupyter
runtime:
    C:\Users\userx\AppData\Roaming\jupyter\runtime

编辑

如果我在环境中安装 jupyter 并从环境中启动笔记本,这似乎可行。但是,在 base.

中知道如何使用 jupyter 来做同样的事情还是很高兴的

尝试提供完整的 conda python 路径,看看是否可以解决问题:

C:\Users\<username>\anaconda\envs\<environment-name>\bin\python -m ipykernel install --name mlflow

找不到ipykernel的原因是没有安装在正确的python环境中。使用“python -m”可能会引用 conda 外部的原生 python 或基础环境中的 python。指定完整路径只是确保它安装在正确的环境中。