Kedro 使用了错误的 conda 环境
Kedro using wrong conda environment
我创建了一个名为 Foo
的 conda 环境。激活此环境后,我使用 pip
安装了 Kedro,因为 conda
给我带来了冲突。即使我在 Foo
环境中,当我 运行:
kedro jupyter lab
它从我的 base
环境中获取模块,而不是 Foo
环境。知道为什么会这样吗,以及如何更改我的笔记本检测到的模块?
编辑
通过修改我的代码,我发现在 \AppData\Roaming\jupyter\kernels\kedro_project\kernel.json
上它从基本环境调用 python,而不是 Foo
环境。我手动更改了它,但是是否有一种模式自动设置 \AppData\Roaming\jupyter\kernels\kedro_project\kernel.json
以使用我所在的当前环境?
这可能是 jupyter 的问题。我建议尝试 运行 jupyter notebook 并了解它是 kedro 还是 jupyter。
我记得由于某些 jupyter 问题而遇到类似的问题,但不记得我是如何修复它的。我记得尝试过一些解决方案
this issue 在 jupyter 上。
尝试在您的 foo 环境中执行 pip install jupyterlab,Jupyter 内核是一个不同的概念,有时表现得很奇怪。
自定义 Kedro 内核规范是我最近添加到 Kedro 的一项功能。当您 运行 kedro jupyter lab/notebook
时,它应该会自动在 conda 环境中启动,而无需您手动编辑 kernel.json 文件。我自己对此进行了测试以检查它是否有效,所以我非常想了解这里发生了什么!
函数_create_kernel
is what makes the the Kedro kernel spec. The docstring for that explains what's going on, but in short we delegate to ipykernel.kernelspec.install
. This generates a kernelspec that points towards the Python path given by sys.executable
(see make_ipkernel_cmd
)。从理论上讲,这应该已经指向正确的 Python 路径,该路径考虑了 conda 环境。
值得检查 which kedro
以查看指向哪个 conda 环境,如果我们需要进一步调试,请在我们的 Github repo 上提出问题。我绝对想查个水落石出,了解问题出在哪里。
P.S。您还可以执行简单的 jupyter lab/notebook
以在正确的 conda 环境中启动内核,然后在第一个单元格中 运行 %load_ext kedro.extras.extensions.ipython
。这基本上等同于使用 Kedro 内核规范,它会自动加载 Kedro IPython 扩展。
我创建了一个名为 Foo
的 conda 环境。激活此环境后,我使用 pip
安装了 Kedro,因为 conda
给我带来了冲突。即使我在 Foo
环境中,当我 运行:
kedro jupyter lab
它从我的 base
环境中获取模块,而不是 Foo
环境。知道为什么会这样吗,以及如何更改我的笔记本检测到的模块?
编辑
通过修改我的代码,我发现在 \AppData\Roaming\jupyter\kernels\kedro_project\kernel.json
上它从基本环境调用 python,而不是 Foo
环境。我手动更改了它,但是是否有一种模式自动设置 \AppData\Roaming\jupyter\kernels\kedro_project\kernel.json
以使用我所在的当前环境?
这可能是 jupyter 的问题。我建议尝试 运行 jupyter notebook 并了解它是 kedro 还是 jupyter。
我记得由于某些 jupyter 问题而遇到类似的问题,但不记得我是如何修复它的。我记得尝试过一些解决方案 this issue 在 jupyter 上。
尝试在您的 foo 环境中执行 pip install jupyterlab,Jupyter 内核是一个不同的概念,有时表现得很奇怪。
自定义 Kedro 内核规范是我最近添加到 Kedro 的一项功能。当您 运行 kedro jupyter lab/notebook
时,它应该会自动在 conda 环境中启动,而无需您手动编辑 kernel.json 文件。我自己对此进行了测试以检查它是否有效,所以我非常想了解这里发生了什么!
函数_create_kernel
is what makes the the Kedro kernel spec. The docstring for that explains what's going on, but in short we delegate to ipykernel.kernelspec.install
. This generates a kernelspec that points towards the Python path given by sys.executable
(see make_ipkernel_cmd
)。从理论上讲,这应该已经指向正确的 Python 路径,该路径考虑了 conda 环境。
值得检查 which kedro
以查看指向哪个 conda 环境,如果我们需要进一步调试,请在我们的 Github repo 上提出问题。我绝对想查个水落石出,了解问题出在哪里。
P.S。您还可以执行简单的 jupyter lab/notebook
以在正确的 conda 环境中启动内核,然后在第一个单元格中 运行 %load_ext kedro.extras.extensions.ipython
。这基本上等同于使用 Kedro 内核规范,它会自动加载 Kedro IPython 扩展。