【问题标题】:Why does jupyter choose this environment?为什么jupyter会选择这个环境?
【发布时间】:2021-04-29 15:01:39
【问题描述】:

我正在从安装在 MacOS 上的主目录中的 conda 启动 jupyter。我打开一个笔记本来测试我在 conda 中安装的一个模块。令我惊讶的是,这不起作用。该模块已正确安装并将其导入从 conda 作品开始的交互式 python 中。更奇怪的是

import sys
sys.executable

在笔记本单元中运行指向与所有这些完全无关的虚拟环境。它位于测试笔记本所在父目录的不同子目录中。我已经在 VS Code 交互式 shell 中启动了 conda,也许这会有所帮助。

which jupyter 正确指向我的主目录中的 conda 安装,which pythonwhich python3which python9which pip3 也是如此。

如何改变这种奇怪的行为,是什么原因造成的?也就是怎么用conda python环境代替这个虚拟环境呢?

编辑

这在某种程度上与 VS Code 设置的端口转发有关。没有它我无法连接到服务器。 即使通过常规 ssh 连接并通过-L 标志使用端口映射,也会发生这种情况。

编辑 2

我压缩了包含 python 环境的目录并删除了实际目录。现在 jupyter 内核将不再启动,因为 FileNotFound 指向这个确切的 python 可执行文件。但为什么呢?

【问题讨论】:

    标签: python python-3.x jupyter-notebook virtualenv conda


    【解决方案1】:

    问题是位于~/Library/Jupyter/kernels 的错误内核配置。我依稀记得曾经将 jupyterlab 安装到这台机器上的主要 python 安装中。这一定是创建了这个配置。 conda 上的安装似乎使用了这个配置。我删除了~/Library/Jupyter 目录,现在一切正常。

    请注意,此配置隐藏了正确的“Python 3”内核。也就是说,当我尝试创建一个新的 python 3 notebook 时,菜单只列出了一个“Python 3”条目,它指的是虚拟环境中错误的 python 3 安装。

    【讨论】:

    • 通过python -m ipykernel install --user ... 手动注册内核将在此位置创建条目 - 与您安装 Jupyter 的位置无关。如果使用 Conda,nb_conda_kernels 扩展对于在 Conda 环境中自动发现内核很有用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-29
    • 2011-01-18
    • 1970-01-01
    • 1970-01-01
    • 2021-09-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多