我创建了一个名为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
以使用当前环境?
发布于 2022-05-18 13:06:56
自定义的Kedro内核规范是我最近添加到Kedro的一个特性。当您运行kedro jupyter lab/notebook
时,它应该自动获取conda环境,而不需要手动编辑kernel.json文件。我亲自测试了一下,以确认它是否有效,所以我非常有兴趣了解这里发生了什么!
函数_create_kernel
是构成Kedro内核规范的原因。它的docstring解释了正在发生的事情,但简而言之,我们将委托给ipykernel.kernelspec.install
。这将生成一个指向sys.executable
提供的Python路径的内核规范(参见make_ipkernel_cmd
)。理论上,这应该指向正确的Python路径,它考虑到了conda环境。
值得检查which kedro
以查看指向哪个conda环境,如果我们需要进一步调试,请在Github回购上提出一个问题。我很想弄清楚这件事的真相,明白问题出在哪里。
另外,您还可以执行一个普通的jupyter lab/notebook
来使用正确的conda环境启动内核,然后在第一个单元中运行%load_ext kedro.extras.extensions.ipython
。这基本上等同于使用kernelspec,它自动加载Kedro IPython扩展。
发布于 2022-05-17 14:39:54
这可能是jupyter的一个问题。我建议试着运行jupyter笔记本,了解到底是kedro还是jupyter。
我记得面对一些类似的问题,因为一些棘手的问题,但我不记得我是如何解决它。我记得在jupyter上尝试过本期的一些解决方案。
发布于 2022-05-17 14:58:52
尝试在foo环境中安装jupyterlab,木星内核是一个不同的概念,有时行为怪异。
https://stackoverflow.com/questions/72275283
复制相似问题