在Jupyter Notebook中使用虚拟环境

问题描述:

我在Anaconda中除了base环境,还创建了一个专门使用PyTorch的虚拟环境,今天在Jupyter Notebook中去查看一个项目代码的时候,发现Jupyter是基于base环境运行的,找不到在PyTorch环境中安装的包,网上查找了一些文章,将在Jupyter Notebook中使用虚拟环境的步骤及碰到的问题总结一下


解决方案:

一、首先打开Anaconda Prompt,在base环境中安装nb_conda_kernels包,使用如下命令:

conda install nb_conda_kernels

安装结束后,进入Jupyter,选择这个conda,能够看到所有的虚拟环境
在Jupyter Notebook中使用虚拟环境_第1张图片
二、虚拟环境的使用

  1. 在虚拟环境中创建新的项目
    点击New按钮,能够看到现有的虚拟环境情况,选择需要的环境
    在Jupyter Notebook中使用虚拟环境_第2张图片

  2. 使用虚拟环境运行现有项目
    点击Kernel按钮,选择Change kernel,选择现有项目需要运行的虚拟环境
    在Jupyter Notebook中使用虚拟环境_第3张图片

三、按照一般网上找到的文章,安装了这个包之后就能够切换虚拟环境了,我还碰到了两个问题:

  1. 点击conda查看虚拟环境的时候,出现了一个报错:“EnvironmentLocationNotFound: Not a conda environment: D:\anaconda3\envs\anaconda3”

    这个我在第二篇参考文章里找到了解决方案,这是conda的一个小bug,需要修改下代码,我的路径是anaconda安装目录下的“pkgs\nb_conda-2.2.1-py38_1\Lib\site-packages\nb_conda”,根据python的版本不同会稍有差异。

    对“envmanager.py”文件进行修改,将原来的

    return {
    
        "environments": [root_env] + [get_info(env)
    
                                      for env in info['envs']]
    
    }
    

    修改为:

    return {
    	"environments": [root_env] + [get_info(env)
                                      for env in info['envs']
                                      if env != root_env['dir']
                                     ]
    }
    

    添加了一句:if env != root_env['dir'],这样就能够对base环境的目录准确定位了

  2. 虽然从conda中能够看到虚拟环境了,但是在change kernel和new按钮下都找不到虚拟环境,这个是从第一篇参考文章里找到的解决方案,需要在虚拟环境里安装一个包ipykernel

    我先切换到了虚拟环境,使用

    activate 虚拟环境名称
    

    然后在激活的虚拟环境下安装了ipykernel

    conda install ipykernel
    

参考文章:

1.jupyter notebook中选择conda环境及其可能出现的问题解决

这篇文章写的非常详细,我只遇到了部分问题,所以文章中只总结了部分,有其他问题的童鞋可以参考,非常感谢作者

2.2018-10-02 Jupyter Notebook environment anaconda3 error

这篇文章解决了环境问题的报错

你可能感兴趣的:(#,环境问题,anaconda)