Jupyter 在哪个 conda 环境中执行?

In which conda environment is Jupyter executing?

我有 jupyter/anaconda/python3.5.

  1. 如何知道我的 jupyter notebook 运行 处于哪个 conda 环境?

  2. 如何从新的 conda 环境启动 jupyter?

问题一:查找当前notebook的conda环境

在 Jupyter Notebooks 中打开笔记本并查看屏幕右上角。

它应该说,例如,如果语言是 Python 并且它正在使用一个名为 env_name 的环境,那么它应该说 "Python [env_name]"。


问题 2:从不同的 conda 环境中启动 Jupyter Notebook

在 运行 jupyter notebook 之前使用 source activate <environment name> 在终端中激活 conda 环境。这 适用于 Jupyter 笔记本。否则,[Root] 环境是默认的。

您还可以在 Jupyter Notebook 中创建新环境(主屏幕、Conda 选项卡,然后单击加号)。

并且您可以在任何您想要的环境中创建笔记本。 Select 主屏幕上的 "Files" 选项卡并单击 "New" 下拉菜单,然后在该菜单中 select 列表中的 Python 环境。

如评论中所述,切换内核需要conda支持jupyter notebooks。似乎这种支持现在可以通过 conda 本身获得(而不是依赖 pip)。 http://docs.continuum.io/anaconda/user-guide/tasks/use-jupyter-notebook-extensions/

conda install nb_conda

除了 Notebook Conda Kernels 之外,它还带来了另外三个方便的扩展。

jupyter在哪个环境执行:

import sys
print(sys.executable)

为 jupyter notebook 创建内核

source activate myenv
python -m ipykernel install --user --name myenv --display-name "Python (myenv)"
source activate other-env
python -m ipykernel install --user --name other-env --display-name "Python (other-env)"

http://ipython.readthedocs.io/en/stable/install/kernel_install.html#kernel-install

如果上述答案不起作用,请在新环境中尝试 运行ning conda install ipykernel,然后在任何环境中尝试 运行 jupyter notebook,您将能够看到或切换在那些内核之间。

您还可以在 Anaconda Navigator 中切换环境,安装 Jupiter 并 运行 它。

Question 1: How can I know which conda environment is my jupyter notebook running on?

  • 启动你的 Anaconda Prompt 和 运行 命令 conda env list 列出所有可用的 conda 环境。

    You can clearly see that I've two different conda environments installed on my PC, with my currently active environment being root(Python 2.7), indicated by the asterisk(*) symbol ahead of the path.

Question 2: How can I launch jupyter from a new conda environment?

  • 现在,要启动所需的 conda 环境,只需 运行 activate <environment name>。在这种情况下,activate py36

有关详细信息,请查看此 link and this previous Stack Overflow question.

因为 none 上面的答案对我有用,所以我在这里写下最终解决我在 Ubuntu 上的问题的解决方案。我的问题是:
我执行了以下步骤:

  1. 激活我的环境:conda activate MyEnv
  2. 启动jupyter笔记本:jupyter notebook

虽然MyEnv在终端中处于活动状态,并且在编写conda env list时有一个星号,但是jupyter notebook是使用基础环境启动的。 安装 nb_condaipykernel 也没有解决我的问题。此外,conda 选项卡没有出现在 jupyter notebook 中,而且点击内核或进入菜单 Kernel->Change Kernel 也没有显示内核 MyEnv.
解决方案是:在 MyEnv 环境中安装 jupyter_environment_kernel

pip install environment_kernels

之后启动jupyter notebook时,它是在正确的环境下启动的。您还可以在不停止内核的情况下切换环境,方法是转到菜单 Kernel->Change Kernel 并选择所需的内核。

我已经尝试了上面提到的所有方法,但没有任何效果,除了在新环境中安装 jupyter。

激活新环境 conda activate new_env 将 'new_env' 替换为您的环境名称。

接下来安装jupyter 'pip install jupyter'

您还可以通过转到 anaconda 导航器并选择正确的环境来安装 jupyter,然后从主页选项卡安装 jupyter notebook

除了上述答案,您还可以使用

!which python

在单元格中键入此内容,这将显示环境路径。我不确定原因,但在我的安装中,notebook 中没有环境隔离,但是在激活环境并启动 jupyter notebook 时,使用的路径是安装在环境中的 python。

要检查笔记本的环境 运行ning 在笔记本中键入以下命令 shell

import sys
print(sys.executable)

要在新环境中启动笔记本,请先停用该环境。创建conda环境,然后安装ipykernel。激活那个环境。在该环境中安装 jupyter。

conda create --name {envname}
conda install ipykernel --name {envname}
python -m ipykernel install --prefix=C:/anaconda/envs/{envname} --name {envname}
activate envname
pip install jupyter

在您的情况下,路径 "C:/anaconda/envs/{envname}" 可能不同,请进行相应检查。 完成所有步骤后,启动笔记本并执行第 1 步 运行 以下 shell.

sys.executable

这应该显示:Anaconda/envs/envname

要显示笔记本正在使用哪个 conda env,只需在单元格中键入:

!conda info

如果你有grep,更直接的方法:

!conda info | grep 'active env'
  1. 为了检查您的 Jupyter Notebook Python 运行 尝试执行此代码。

从平台导入python_version 打印(python_version())

  1. 为了从您的环境中 运行 jupyter notebook 激活 MYenv 并使用命令安装 jupyter notebook pip 安装 jupyter notebook

然后 jupyter 笔记本

下面的命令会直接在jupyter notebook中添加env。

conda create --name test_env
conda activate test_env
conda install -c anaconda ipykernel
python -m ipykernel install --user --name=test_env

现在它应该说,“Python [test_env]”如果语言是 Python 并且它正在使用一个名为 test_env.

的环境

在 Ubuntu 20.04 日,none 以上建议奏效了。

即我激活了现有环境。我发现(使用 sys.executable 和 sys.path)我的 jupyter notebook 内核是 运行 默认的 Anaconda python,而不是我在激活的 python 中安装的 python环境。这样做的结果是我的笔记本无法将我安装的包导入到这个特定的 Anaconda 环境中。

按照上面的说明(以及一系列其他 URL),我安装了 ipykernel、nb_conda、nb_conda_kernels 和 运行:python -m ipykernel --user --name myenv.

使用我的 Jupyter 笔记本中的 Kernels|Change Kernel... 菜单,我选择了 myenv,这是我在 python -m ipykernel 命令中指定的那个。

然而,sys.executable表明这并没有“坚持”。

我尝试关闭并重新启动,但没有任何结果让我得到了我选择的环境。

最后,我简单地编辑了文件夹中的文件 kernel.json:

~/.local/share/jupyter/kernels/myenv

果然,尽管我已经执行了上面建议的所有步骤,这个 JSON 文件中的第一个参数仍然显示默认的 python 位置:

$Anaconda/bin/python(其中$Anaconda是我安装anaconda的位置)

我用文本编辑器编辑了文件 kernel.json,将其更改为:

$Anaconda/envs/myenv/bin/python

希望我对 myenv 的使用被理解为意味着您应该将其替换为您的环境名称。

编辑完这个文件后,我的 Jupyter notebooks 开始正常工作——也就是说,它们使用了为我激活的环境指定的 python,我能够导入安装在这个环境中的包,但不能导入基本 Anaconda 环境。

显然,ipykernel、nb_conda 和 nb_conda_kernels 包集如何为 jupyter 配置 Anaconda 环境时出现了问题。

为我解决问题的是我必须运行以下命令:

python -m ipykernel install --user --name myenv --display-name "Python (myenv)"

问题是我打开了一个 jupyter notebook,使 with/for 成为另一个 conda python 环境的内核。从终端的输出中可以看出这一点;它是来自 conda 环境终端的便捷 op 运行 jupyter notebook,因此您可以轻松查看显示的错误消息。然后很明显,笔记本试图从另一个环境运行 python。

正在检查 folder/files:

C:\Users\<username>\AppData\Roaming\jupyter\kernels\<env name>\kernel.json

 "argv": [
  "D:\Users\<username..path>\envs\<env name>\python.exe",
  "-m",
  "ipykernel_launcher",
  "-f",
  "{connection_file}"
 ],
 "display_name": "Python (env name)",
 "language": "python",
 "metadata": {
  "debugger": true
 }
}

所以您可以在必要时检查并更正。

其次,在使用anaconda/conda时,请确保您拥有健康的频道策略,并在创建新环境时执行以下命令:

conda config --add channels conda-forge
conda config --set channel_priority strict

解决了我这个问题,希望对你也有帮助。

对于windows10,

  1. 进入 Anaconda 启动器
  2. 在'Applications on'下拉菜单中,select所需的conda环境。
  3. 在 Anaconda 启动器中安装 Jupyter notebook
  4. 从 Anaconda 启动器启动 Jupyter notebook

Conda 选项卡在 Jupyter notebook 中可见,您可以在其中查看活动的 conda 环境。