# 在Jupyter中添加虚拟环境作为新内核

<!--more-->

## 添加内核
终端切换`python`版本很容易，但在`jupyter`中应该如何切换环境？

假如有一个虚拟环境`science`，将其导入`jupyter`的过程如下：

1、进入虚拟环境`science`
```bash
pyenv active science
```

2、安装`ipykernel`
```bash
pip install ipykernel
```

3、为`jupyter`安装新内核
```bash
ipython kernel install --user --name science --display-name "python3 (science)"
```

4、查看可用内核
```bash
jupyter-kernelspec list

Available kernerls:
  science    /Users/xuwutao/Library/Jupyter/kernels/science
  python3 /Users/xuwutao/.pyenv/versions/3.7.1/Python.framework/Versions/3.7/share/jupyter/kernels/python3
```

<!-- <img src="{%asset_path jupyter-with-virtualenv.png %}" width="400" height="400"> -->
<!-- <figure> -->
<!-- <img src="jupyter-with-virtualenv.png" alt="jupyter中添加虚拟环境作为新内核" width="400" height="400"> -->
<!-- <center>jupyter中添加虚拟环境作为新内核</center> -->
<!-- </figure> -->

{{< figure src="jupyter-with-virtualenv.zh-cn.webp" width="400"
height="400" title="jupyter中添加虚拟环境作为新内核">}}

![jupyter中添加虚拟环境作为新内核](jupyter-with-virtualenv.zh-cn.webp "jupyter中添加虚拟环境作为新内核")

## 修改内核
内核在`jupyter`中以`json`文件方式存在。每新建一个内核，`jupyter`会在系统的特定位置新建文件夹，存储相应的`json`文件。这些位置分布如下：

|          | Unix                                                                          | Windows                        |
| :---:    | :---:                                                                         | :----:                         |
| `System` | `/usr/share/jupyter/kernels`<br>`/usr/local/share/jupyter/kernels`            | `%PROGRAMDATA\jupyter\kernels` |
| `Env`    | `{sys.prefix}/share/jupyter/kernels`                                          |                                |
| `User`   | `~/Library/Jupyter/kernels` (Mac)<br>`~/.local/share/jupyter/kernels` (Linux) | `%APPDATA%\jupyter\kernels`


---

> 作者: 泛福轩  
> URL: http://hugo.spiedeman.top/posts/python/jupyter-with-virtualenv/  

