创建 python 虚拟环境以及对应的 jupyter note

2019-01-08  本文已影响0人  OurNote

为什么需要 python 虚拟环境

python 的版本和已安装的 package 一直是项目开发需要注意的问题。有些项目需要 python 2,有些必须用 python 3。一个项目中用到的 python package 版本跟其他项目可能还会有冲突。

为了解决这些问题,建议使用 python 虚拟环境。为每个项目创建一个独立的虚拟环境并安装各自需要的 package,项目之间互不干扰。创建虚拟环境可以用 virtualenv 方式,也可以用 conda,这里我们选用 virtualenv 方式。

如何创建 python 虚拟环境

一个好的习惯是将所有的 python 虚拟环境放在同一个文件夹下,便于管理。大体的路径如下:

home/user_name/pyenvs/project1
home/user_name/pyenvs/project2
home/user_name/pyenvs/project3
...

最简单的虚拟环境创建命令:

virtualenv  project1   

这里 project1 是要创建的虚拟环境的名字,默认是在当前路径下创建虚拟环境。
也可以指定某个具体的路径:

virtualenv ~/path/to/a/virturalEnv 

在创建虚拟环境时,如果提示找不到 virtualenv ,很可能系统中还没有安装 virtualenv,可以用下面的命令安装

sudo apt install virtualenv

如果要指定在虚拟环境中用某一版本的 python,可以用如下命令:

virtualenv -p python3 project1 

或者更加具体的指定 python 3 的版本,例如指定虚拟环境中用 python 3.6 版本:

virtualenv -p python3.6 project1

不过这里的前提是系统中确实存在 python3.6 版本。关于系统 python 版本的查看和设置可以参考我们之前的文章

上述命令会在当前目录下创建全新的 python 虚拟环境 project1。原本系统中的 python package 也不能被虚拟环境使用。如果希望新建的虚拟环境可以使用系统的 package,则在创建虚拟环境时添加参数 --system-site-packages

virtualenv  -p python3.6 --system-site-packages project1 

启动 python 某一虚拟环境(例如 project1)命令如下:

source  <path to the activate file in project1>

具体地,假设当前目录是在 project1 文件夹中,则用命令

source  bin/activate

总之,给出指向虚拟环境文件夹中 activate 文件的路径即可。

在 source 之后,会看到命令行开头多了虚拟环境的名字,这表明当前已处于虚拟环境中,此后安装的所有 python package 都被安装到了此虚拟环境中,与系统的主 python 环境无关,也与其他虚拟环境无关。安装 package 时也不需要 sudo 或者 --user 参数。

如果希望每次打开 terminal 就自动进入某个虚拟环境,可以将上述 source 命令放入 .bashrc 文件中。

要退出虚拟环境,可以在命令行中用如下命令:

deactivate

当不再需要某个虚拟环境时,直接删掉对应的虚拟环境文件夹即可。

如何将虚拟环境设置为 jupyter notebook 的 kernel

jupyter notebook 是一个非常流行的编程环境,很方便调试,也适合发布供其他人参考。可以简单地把 jupyter notebook 看作一个实验报告,里面可以有代码,试验结果图片,文档说明等。目前网上很多教程是用 jupyter notebook 的形式书写的。

在安装了虚拟环境之后,为了在 jupyter 中使用虚拟环境中的 module,我们需要设置与该虚拟环境对应的 jupyter kernel。只需要简单的两步,如下:

  1. source 进入要设置成 jupyter kernel 的虚拟环境,安装 ipykernel module
pip install ipykernel
  1. 添加虚拟环境对应的 kernel:
ipython kernel install --user --name=kernel_name_you_like

此后就可以在 jupyter 的 kernel 中选择此虚拟环境对应的 kernel了,虚拟环境中的 module 都可以被调用。

另外两个与 jupyter kernel 相关的常用命令是:

jupyter kernelspec list
jupyter kernelspec uninstall kernel_name
上一篇下一篇

猜你喜欢

热点阅读