使用virtualenv创建的python虚拟环境,在jupyter|使用virtualenv创建的python虚拟环境,在jupyter notebook中使用的方法

引入 我们可以使用virtualenvmkvirtualenv创建新一个python虚环境,具体参考文献1。本文讲解使用上面两种命令创建出来的python虚环境,如何在jupyter notebook中使用。
文中实验环境说明如下:
运行环境:windos 7 64bit
python版本: python 3.7
设置过程 安装python后,会有一个默认的python环境。以我的机器为例,默认python环境安装目录为D:\Program Files\Python\Python37。除了默认的python环境外,我们的机器上还会安装各种Python虚环境。
下面具体的设置过程,假设之前是使用mkvirtualenv创建的虚环境。
1 首先,激活(进入)虚环境。

workon 虚环境名称

【使用virtualenv创建的python虚拟环境,在jupyter|使用virtualenv创建的python虚拟环境,在jupyter notebook中使用的方法】2 在虚环境中安装ipykernel。(注:一定要在虚环境中安装它)
pip install ipykernel

3 在在虚环境中将当前的虚拟环境添加到Jupyter Notebook的kernel中。(注:一定要在虚环境中执行)
python -m ipykernel install --name 虚环境名称 --display-name 虚环境名称

4 运行jupyter notebook,在界面中,能看到新填加的虚环境。运行jupyter notebook在不在虚环境中都行。
jupyter notebook

使用virtualenv创建的python虚拟环境,在jupyter|使用virtualenv创建的python虚拟环境,在jupyter notebook中使用的方法
文章图片

5 引入成功验证。
在jupyter中,使用虚环境,新建一个空的notebook,并在notebook中写一行代码,引入虚环境中特有的一个python包,并运行,看看是否正常运行。
使用virtualenv创建的python虚拟环境,在jupyter|使用virtualenv创建的python虚拟环境,在jupyter notebook中使用的方法
文章图片

# xxx为某个包名 import xxx print(xxx)

注意事项 上述设置过程中的步骤2、3,一定要在目标虚环境中执行才行。否则,到了步骤5,验证时,会发现,在jupyter notebook中会有相应的kernel,只是运行出错,即Python虚环境中的包,不能在jupyter notebook中引入使用,设置的有问题。
至此,配置过程完成了。
其它 下面是不正确做法的一些实验与结果。大伙,可以选择性阅读。
1 查询与删除jupyter kernel命令是什么?
# 列出jupyter kernel jupyter kernelspec list# 删除kernel jupyter kernelspec uninstall 虚环境名称

2 步骤2能不能在默认Python环境中执行?
对于步骤2,在默认环境下安装,不在虚环境中安装,对于本文的目标来说,是不行的。
原因:对于jupyter notebook 切换新的kernel(即使用python新创建的虚环境),如果虚环境中没安装ipykernel,切换到新的kernel,切换内核后的notebook不能正常运行。后台日志显示缺少ipykernel报错。
3 步骤3能不能在默认Python环境中执行?
对于步骤3,在默认Python环境中执行的结果是,新安装的jupyter kernel,实际上对应着默认的python环境。
例子:我的机器上,默认的python环境目录为: D:\Program Files\Python\Python37,虚环境目录为:D:\workon\zq_tools_p38。
查询已经安装的jupyter kernel与kernel信息对应的目录。
C:\Users\Administrator>jupyter kernelspec list Available kernels: python3d:\program_files\python\python37\share\jupyter\kernels\python3 zq_tools_p38C:\ProgramData\jupyter\kernels\zq_tools_p38

查看kernel信息对应目录下的kernel.json文件,本例中为C:\ProgramData\jupyter\kernels\zq_tools_p38\kernel.json
如果在相应虚环境下执行步骤3,有如下的kernel名称。发现此时,这个kernel正确的与我们的虚环境所在目录下的python.exe对应。
{ "argv": [ "D:\\workon\\zq_tools_p38\\Scripts\\python.exe", "-m", "ipykernel_launcher", "-f", "{connection_file}" ], "display_name": "zq_tools_p38", "language": "python", "metadata": { "debugger": true } }

如果在默认环境下执行步骤3,有如下的kernel信息。发现此时,这个kernel与我们的默认环境目录下的python.exe对应。
{ "argv": [ "D:\\Program Files\\Python\\Python37\\python.exe", "-m", "ipykernel_launcher", "-f", "{connection_file}" ], "display_name": "zq_tools_p38", "language": "python", "metadata": { "debugger": true } }

参考文献 [1] https://zhuanlan.zhihu.com/p/... "最全的Python虚拟环境使用方法 - 知乎"
[2] https://blog.csdn.net/jingyou... (如何在Jupyter notebook中使用virtualenv虚拟环境_静幽水-CSDN博客_jupyter notebook 虚拟环境)
[3] https://www.cnblogs.com/xiaog... (windows中Python多版本与jupyter notebook中使用虚拟环境 - 秋官 - 博客园)
[4] https://blog.csdn.net/weixin_... (Windows下Jupyter notebook如何导入虚拟环境中的依赖包_weixin_43693446的博客-CSDN博客)
[5] https://blog.csdn.net/weixin_... (windows在jupyter中使用虚拟环境_小晴同學的博客-CSDN博客_jupyter使用虚拟环境)

    推荐阅读