使用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 虚环境名称

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 notebook中使用的方法_第1张图片

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

# 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:
  python3         d:\program_files\python\python37\share\jupyter\kernels\python3
  zq_tools_p38    C:\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使用虚拟环境)

你可能感兴趣的:(使用virtualenv创建的python虚拟环境,在jupyter notebook中使用的方法)