我用Python 3.7(根环境)安装了Anaconda 5.3。
之后,我使用Python 3.6创建了一个新环境(py36)
我使用activate py36
激活了新环境
conda env list
显示环境处于活动状态。
但是,当我启动Jupyter Notebook(从带有jupyter notebook
的Anaconda提示符下)时,似乎使用的是root环境,而不是激活的环境。
如何在新的创建环境(py36)中使用Jupyter Notebook?
答案 0 :(得分:5)
如@Ista所述,该文档提供了一个使用笔记本扩展程序的简单解决方案。
conda install nb_conda
安装后,您可以在Jupyter Notebook中从Jupyter Notebook的“内核”菜单中选择“更改内核”。
答案 1 :(得分:0)
我设法在类似的问题中找到了解决方案。问题是IPython不是virtualenv-aware,所以一种解决方法(我觉得最舒服的一种方法)是指定自定义IPython内核,以避免在您的每个virtualenv(或anaconda环境)中安装一个Jupyter Notebook。情况)。
Jupyter依赖于一些“内核”(对在哪里可以找到python二进制文件的定义),这些内核存储在您的操作系统中。这些文件是这样的:
{
"display_name": "NameOfTheKernel",
"language": "python",
"argv": [
"/usr/bin/python",
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}"
]
/usr/bin/python
是要执行的python二进制文件的路径。但是,由于这些内核是由Jupyter在您的计算机中定义的,因此在您安装其他一些环境时,它们不会更新(anaconda或virtualenv就是这种情况)。我发现最简单的方法是为您使用的每个环境定义一个自定义内核。另外,这样做是因为每次直接使用时都需要激活该环境。
这个想法是定义一个自定义内核,以便Jupyter可以“看到”您使用anaconda创建的环境。为此,请在bash中执行以下行:
ipython kernel install --user --name=NameOfTheKernel
“ NameOfTheKernel”实际上并不重要。如果您没有ipython
软件包,请通过sudo apt install
或其他方式使用pip,anaconda进行安装。
此行要做的是定义一个将由jupyter检测到的自定义内核。出于说明目的,在Ubuntu中,它将以以下数据结构存储在文件夹/home/USERNAME/.local/share/jupyter
中:
/home/USERNAME/.local/share/jupyter/kernels/
└── nameofthekernel
├── kernel.json
├── logo-32x32.png
└── logo-64x64.png
一旦安装了内核,就必须:
1)知道anaconda在哪里安装了环境。一种简单的方法是在anaconda中激活您的环境,然后在终端中编写“哪个python”。这将显示二进制文件的完整路径。
2)在刚创建的jupyter内核中写入该路径。例如。使用羽毛:
pluma /home/USERNAME/.local/share/jupyter/kernels/nameofthekernel/kernel.json
然后,使用/usr/bin/python
所在的anaconda替换安装的python二进制文件的路径。
此后,如果Jupyter正在运行,请重新启动它。这样,下次打开Jupyter时,您可以更改内核(在笔记本电脑中,上部的选项卡之一),并且您将使用您的环境以及在该环境旁边安装的所有软件。
[TL; DR] 我是用pip完成的,但是anaconda的步骤大致相同。步骤是:
#CREATE THE IPYTHON KERNELS
ipython kernel install --user --name=NameOfKernel
#IF PYTHON2 - MODIFY THE KERNELS TO USE THE ANACONDA BINARIES
sed -i -e "s|/usr/bin/python3|/home/${USER}/anaconda/bin/python27|g" /home/$USER/.local/share/jupyter/kernels/nameofkernel/kernel.json
#IF PYTHON3 - MODIFY THE KERNELS TO USE THE ANACONDA BINARIES
sed -i -e "s|/usr/bin/python3|/home/${USER}/anaconda/bin/python36|g" /home/$USER/.local/share/jupyter/kernels/nameofkernel/kernel.json
或者,如果您正在使用环境:
#CREATE THE IPYTHON KERNELS
ipython kernel install --user --name=NameOfKernel
#IF PYTHON2 - MODIFY THE KERNELS TO USE THE ANACONDA BINARIES
sed -i -e "s|/usr/bin/python3|/home/${USER}/anaconda/envs/nameofenvironment/python27|g" /home/$USER/.local/share/jupyter/kernels/nameofkernel/kernel.json
#IF PYTHON3 - MODIFY THE KERNELS TO USE THE ANACONDA BINARIES
sed -i -e "s|/usr/bin/python3|/home/${USER}/anaconda/envs/nameofenvironment/python36|g" /home/$USER/.local/share/jupyter/kernels/nameofkernel/kernel.json
注意:我没有安装CONDA来测试解决方案,因此通往实际PYTHON双星的路径可能会发生变化。程序是一样的。