#背景
python是一门开发语言,也是当下非常流行的一门语言。而jupyter是基于bs架构的是一个交互式笔记本。用于代码开发,目前主流用于python算法的开发。
jupyter中导入python虚拟环境
关于python的虚拟环境介绍请看我的另一篇文章虚拟环境详解。本文仅介绍在jupyter中如何导入已经存在的虚拟环境。
- 激活需要导入的虚拟环境
source 虚拟环境根目录/bin/activate
- 安装ipykernel
pip install ipykernel
离线安装ipykernel可以去pypi.org下载
- 导入jupyter kernel
在当前虚拟环境下,执行以下命令
python -m ipykernel install --user --name tensorflow --display-name "Python (tensorflow)"
name参数保证唯一,display-name 是kernel显示的名字,重启jupyter,看下如下效果。
原理介绍
其实导入的jupyter kernel根本性质是在/home/[用户名]/.local/share/jupyter/kernels/目录下新建了一个对应--name 参数的文件夹。
文件下的内容也很简单。如下图,最重要的就是kernel.json文件。看下json文件就知道kernel如何和python虚拟环境进行关联的。
- kernel.json的内容
{
"argv": [
"/home/jovyan/FaceRecognition-tensorflow/1/FaceRecognition-tensorflow-master/venv/bin/python",
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}"
],
"display_name": "Python (facerecognition-tensorflow)",
"language": "python"
}
看下内容argv,直接指向了FaceRecognition-tensorflow-master/venv/bin/python。
- 基于以上,有一个大胆的猜测,如果我在/home/[用户名]/.local/share/jupyter/kernels/直接新建一个test-evn文件夹,将kernel.json的内容指向另外一个python虚拟环境,重启jupyter同样也会在jupyter界面上看到新的kernel。如下图