发现问题
今天在工作中遇到这样一个问题:安装完Anaconda利用conda创建了虚拟环境,但是启动jupyter notebook之后却找不到我创建的虚拟环境中的python kernel。后来通过上网找资料找到了如下解决办法:
虚拟环境的创建
我创建了一个虚拟环境,名称为ml_py35:
conda create -n ml_py35 python=3.5
# 指定虚拟环境的存储目录
conda create -p /your_path/env_name python=3.5
# 指定目录的虚拟环境激活
conda activate /your_path/env_name
添加Python kernel
方法一:
首先,找到如下目录:
C:~\AppData\Roaming\jupyter
其中,波浪线代表你的家目录,比如你的windows登录用户为DaLang,那么波浪线就代表Users\DaLang。
然后在上面的目录下新建一个名为kernels的目录,进入到这个目录:
C:~\AppData\Roaming\jupyter\kernels\
然后再在这个目录下面创建一个使用你创建的虚拟环境的名字的文件夹,目的是便于你日后辨别使用哪个虚拟环境,这里我就叫ml_py35:
C:~\AppData\Roaming\jupyter\kernels\ml_py35
然后在该文件夹下创建一个kernel.json的文件,文件内容如下:
{
"language": "python",
"display_name": "ml_py35",
"argv": [
"C:\\ProgramData\\Anaconda3\\envs\\ml_py35\\python.exe",
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}"
]
}
其中argv中的第一个参数表示你创建的anaconda的Python虚拟环境的路径,一般找到你安装anaconda的路径就可以轻松找到。
然后保存这个文件,重启jupyter notebook,创建新的notebook时你就可以发现多了一个选项ml_py35,而不仅仅是python3。
但是,我们创建新notebook之后却发现无法启动kernel,后来发现是虚拟环境中缺少支撑组件ipykernel,我们只需要在虚拟环境中安装这个组件即可:
conda install ipykernel
到这里,我们的问题就全部解决了~
最后,如果你会经常使用jupyter notebook,我们可以在创建虚拟环境的同时就安装好ipykernel:
conda create -n ml_py35 python=3.5 ipykernel
方法二:
直接进入创建好的虚拟环境:
activate ml_py35
然后执行如下命令添加虚拟环境的Python kernel:
python -m ipykernel install --name ml_py35
方法三:
还有一种方法,通过anaconda的插件可以实现jupyter notebook中自由切换anaconda中所有已安装虚拟环境:
首先,在默认的anaconda的root环境中安装jupyter:
pip install jupyter
然后,安装ipython和ipykernel:
pip install ipython
pip install ipykernel
最后,安装anaconda插件:
conda install nb_conda
装完这个插件,重启jupyter notebook,界面导航栏会出现conda栏目:
注意,如果我们想要使用比如上面创建好的虚拟环境ml_py35,需要保证这个虚拟环境中也安装了jupyter、ipython、ipykernel,不然无法自由指定想用的虚拟环境:
activate ml_py35 # 激活虚拟环境
pip install jupyter ipython ipykernel # 安装依赖包
然后在默认的anaconda的root环境中启动jupyter notebook,新建notebook之后,我们在导航栏里面就能自由切换当前anaconda中的所有python环境:
附录:
anaconda是现在最流行的数据科学平台,anaconda意为“蟒蛇”,大家是不是就联想到了Python,实际上通过anaconda我们很容易去完成项目中的包管理和环境管理。它是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。感兴趣的小伙伴们可以去下载来玩一玩,反正我是爱不释手了,当然,Anaconda 的下载文件比较大(约 531 MB),如果只需要某些包,或者需要节省带宽或存储空间,也可以使用Miniconda这个较小的发行版(仅包含conda和 Python)。
下面是一些常用的anaconda指令:
查看当前anaconda中有哪些虚拟环境:
conda env list
或者:
conda info -e
激活(进入)虚拟环境:
linux系统:source activate your_env_name(虚拟环境名称)
windows系统:activate your_env_name(虚拟环境名称)
退出虚拟环境:
linux系统:source deactivate your_env_name(虚拟环境名称)
windows系统:deactivate your_env_name(虚拟环境名称)
删除某个虚拟环境:
conda remove -n your_env_name(虚拟环境名称) --all
克隆某个虚拟环境:
conda create -n new_env_name(新环境名称) --clone cloned_env(被克隆的环境名称)
# 克隆旧环境到某个目录
conda create -p /your_path/env_name(新环境存储路径及名称) --clone cloned_env(被克隆的环境名称)
# 指定目录的虚拟环境激活
conda activate /your_path/env_name
安装anaconda依赖包:
conda install package_name(包名)
删除虚拟环境中通过conda安装的某个包:
conda remove --name your_env_name(虚拟环境名称) package_name(包名)
安装Python依赖包:
pip install package_name(包名)
或者:
python -m pip install package_name(包名)
卸载或者移除某个Python依赖包:
pip uninstall package_name(包名)
或者:
python -m pip uninstall package_name(包名)
查看当前虚拟环境中所有的安装包:
conda list
查看当前虚拟环境中Python中安装了哪些包:
pip list
或者:
pip freeze
查看当前虚拟环境中使用的pip的版本:
pip -V
查看当前虚拟环境中使用的Python的版本:
python -V