jupyter多环境配置
无论是使用Jupyter Notebook还是Jupyter Lab, 在实际研发过程中, 在多个版本的开发环境之间切换, 这种场景还是经常遇到的. 无论是前些年Python2和Python3之间的切换, 现在在稳定的Python3.6和最新的Python版本之间切换, 亦或是由于不同版本的tensorflow和pytorch之间切换, 都是在开发过程中会遇到的问题.
模型的调参训练过程, 基本都会使用Jupyter工具进行, 在Jupyter中配置多环境, 就是一个必须要掌握的能力.
虚拟环境
多环境指的就是多个虚拟环境. 在Python中, 可以使用virtualenv和conda工具创建并管理虚拟环境. Jupyter依赖于conda环境, 因此像Jupyter中添加多个环境, 就是添加新的conda虚拟环境.
conda虚拟环境
因此第一步就是要创建conda虚拟环境.
查看conda环境列表
可以使用conda env list查看当前已有的虚拟环境. 通过Anaconda安装, 就会有一个conda-env环境.
garnet@DESKTOP-DH5TCF8:~$ conda list env
# packages in environment at /home/garnet/env/anaconda3:
#
# Name Version Build Channel
conda-env 2.6.0 h36134e3_1创建虚拟环境
创建虚拟环境使用指令:
conda create -n your_env_name python=x.x这里的your_env_name是新虚拟环境的名字, python=x.x制定python版本, 如果不指定则使用系统默认的python版本.
要注意的是, 创建conda虚拟环境是要联网进行的, 因为需要从源仓库中下载. 但实际的测试环境和生产环境往往是不连接外网的, 一般公司内部也没有conda源. 因此安装的时候需要离线安装. 离线安装有两种方法:
第一种是在后面添加--offline参数:
conda create -n your_env_name --offline另一种是指定一个已有的环境, 直接复制:
conda create -n new_env_name --clone raw_env_namenew_env_name是新的虚拟环境的名字, raw_env_name是被复制的环境的名称.
garnet@DESKTOP-DH5TCF8:~$ conda create -n py3.6-tf1.14-cuda10.0 --offline
Solving environment: done
## Package Plan ##
environment location: /home/garnet/env/anaconda3/envs/py3.6-tf1.14-cuda10.0
Proceed ([y]/n)? y
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use:
# > source activate py3.6-tf1.14-cuda10.0
#
# To deactivate an active environment, use:
# > source deactivate再看下现在的conda环境列表:
garnet@DESKTOP-DH5TCF8:~$ conda env list
# conda environments:
#
base * /home/garnet/env/anaconda3
py3.6-tf1.14-cuda10.0 /home/garnet/env/anaconda3/envs/py3.6-tf1.14-cuda10.0进入虚拟环境
在linux环境中使用以下的指令进入到指定的虚拟环境中:
source activate your_env_name进入后退出使用以下指令:
source deactivatewindows的指令则为:
activate your_env_name
deactivate现在进入到刚刚创建的虚拟环境中:
garnet@DESKTOP-DH5TCF8:~$ source activate py3.6-tf1.14-cuda10.0
(py3.6-tf1.14-cuda10.0) garnet@DESKTOP-DH5TCF8:~$删除虚拟环境
如果一个虚拟环境不用了, 为了节省空间删除, 使用以下指令:
conda remove -n your_env_name --alljupyter安装conda环境
在启动jupyter实验平台的环境中安装ipykernel包, 这个环境一般是原始的conda环境, 即一般在这一步不需要进入到虚拟环境:
pip install ipykernel然后执行下面的指令, 就可以将新建的conda环境安装到jupyter环境中, 成为一个可选的环境:
python -m ipykernel install --name conda_env_name --display-name "jupyter_display_name"其中conda_env_name为conda环境的名字, jupyter_display_name为在jupyter中的展示名称, 如果没有指定, 则与conda_env_name保持一致.
在安装中可能遇到没有权限的问题, 只需要添加--user参数即可.
(py3.6-tf1.14-cuda10.0) garnet@DESKTOP-DH5TCF8:~/.pip$ python -m ipykernel install --name py3.6-tf1.14-cuda10.0 --display-name tf1.14-cuda10.0 --user
Installed kernelspec py3.6-tf1.14-cuda10.0 in /home/garnet/.local/share/jupyter/kernels/py3.6-tf1.14-cuda10.0看到上面的显示, 我们就成功地将新的虚拟环境安装到了jupyter中.
可以使用jupyter kernelspec list指令查看当前jupyter所有运行的conda环境.
(py3.6-tf1.14-cuda10.0) garnet@DESKTOP-DH5TCF8:~/.pip$ jupyter kernelspec list
Available kernels:
py3.6-tf1.14-cuda10.0 /home/garnet/.local/share/jupyter/kernels/py3.6-tf1.14-cuda10.0
python3 /home/garnet/env/anaconda3/share/jupyter/kernels/python3可以看到当前jupyter中包含了刚刚安装的conda环境.
jupyter卸载conda环境
如果一个conda环境我们不再使用了, 也可以将这个环境从jupyter中卸载, 使用以下的指令:
jupyter kernelspec remove kernel_namekernel_name指的是对应的conda环境的名字, 而不是在jupyter中展示的名字.
启动jupyter
可以看到在Jupyter Lab环境中有了我们刚才创建并加载到jupyter中的conda环境.

最后更新于
这有帮助吗?