【发布时间】:2020-12-01 11:44:50
【问题描述】:
我在尝试在 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 来做同样的事情,还是很高兴的。
【问题讨论】:
-
如果 Jupyter 是通过 Conda 安装的,例如,在您的 base 中,那么我发现更简洁的工作流程不是手动注册 env,而是在环境中安装
nb_conda_kernels使用jupyter,它将自动发现安装了适当内核包的任何环境(例如,ipykernel、r-irkernel)。见this related answer。
标签: python anaconda jupyter conda