我是靠谱客的博主 健忘大山,这篇文章主要介绍【入门基础】conda+jupyter玩转数据科学环境搭建1 简介,现在分享给大家,希望可以做个参考。

文章来源于Python大数据分析,作者费弗里

本文示例yaml文件已上传至我的Github仓库:
https://github.com/CNFeffery/DataScienceStudyNotes[1]

1 简介

我们在使用Python进行数据分析时,很多时候都在解决环境搭建的问题,不同版本、依赖包等问题经常给数据科学工作流的搭建和运转带来各种各样令人头疼的问题。

本文就将基于笔者自己摸索出的经验,以geopandas环境的搭建为例,教你使用conda+jupyter轻松搞定环境的搭建、管理与拓展。

图1

2 虚拟环境的搭建与使用

2.1 使用conda创建虚拟环境

Windows操作系统为例,因为全程主要使用命令行,所以其他系统方法类似,有少许语句有差异的地方遇到问题时可以自行查找解决。

首先我们要解决的是环境的创建,第一步需要安装conda服务,这里我们有Anacondaminiconda两种方式。

本文选择miniconda体积小巧,不会像Anaconda那样自带数量众多的科学计算相关包而显得臃肿。

有条件上外网的读者朋友可以在conda官网[2]下载与你的操作系统对应的安装包,也可以在清华大学镜像站-获取下载链接-应用软件-Conda[3]中下载对应的最新的安装包:

图2

本文选择的是从官网下载的最新版本4.8.2

因为miniconda自带Python,之后所有新环境的创建我们都可以通过conda来实施,所以建议你在安装之前系统中不要保有其他Python环境。

下载完成之后直接打开安装,一路可以按照默认的选项继续,到图3显示的步骤时为了方便之后的使用建议都勾选上:

图3

完成安装后我们进入控制台输入conda --version检查是否成功安装:

复制代码
1
2
3
C:Usershp>conda --version conda 4.8.2

输入conda env list查看当前存在的所有环境:

复制代码
1
2
3
4
5
C:Usershp>conda env list # conda environments: # base * C:Conda

可以看到我们当前只有1个环境base,即miniconda自带的Python

因为图3中我们勾选了Register Miniconda3 as the system Python 3.7,所以在控制台中直接输入python可以得到下列结果:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
C:Usershp>python Python 3.7.6 (default, Jan 8 2020, 20:23:39) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32 Warning: This Python interpreter is in a conda environment, but the environment has not been activated. Libraries may fail to load. To activate this environment please see https://conda.io/activation Type "help", "copyright", "credits" or "license" for more information. >>> quit() # 退出 C:Usershp>

控制台输入conda list可以看到当前仅有的base环境中仅有下列包:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
C:Usershp>conda list # packages in environment at C:Conda: # # Name Version Build Channel asn1crypto 1.3.0 py37_0 defaults ca-certificates 2020.1.1 0 defaults certifi 2019.11.28 py37_0 defaults cffi 1.14.0 py37h7a1dbc1_0 defaults chardet 3.0.4 py37_1003 defaults conda 4.8.2 py37_0 defaults conda-package-handling 1.6.0 py37h62dcd97_0 defaults console_shortcut 0.1.1 4 defaults cryptography 2.8 py37h7a1dbc1_0 defaults idna 2.8 py37_0 defaults menuinst 1.4.16 py37he774522_0 defaults openssl 1.1.1d he774522_4 defaults pip 20.0.2 py37_1 defaults powershell_shortcut 0.0.1 3 defaults pycosat 0.6.3 py37he774522_0 defaults pycparser 2.19 py37_0 defaults pyopenssl 19.1.0 py37_0 defaults pysocks 1.7.1 py37_0 defaults python 3.7.6 h60c2a47_2 defaults pywin32 227 py37he774522_1 defaults requests 2.22.0 py37_1 defaults ruamel_yaml 0.15.87 py37he774522_0 defaults setuptools 45.2.0 py37_0 defaults six 1.14.0 py37_0 defaults sqlite 3.31.1 he774522_0 defaults tqdm 4.42.1 py_0 defaults urllib3 1.25.8 py37_0 defaults vc 14.1 h0510ff6_4 defaults vs2015_runtime 14.16.27012 hf0eaf9b_1 defaults wheel 0.34.2 py37_0 defaults win_inet_pton 1.1.0 py37_0 defaults wincertstore 0.2 py37_0 defaults yaml 0.1.7 hc54c509_2 defaults

接下来我们开始来搭建本文用于举例说明的geopandas环境,使用conda create -n 环境名称 python=版本来创建新的环境。

譬如这里我们创建名为python_spatial的虚拟环境,Python版本选择3.7

复制代码
1
2
C:Usershp>conda create -n python_spatial python=3.7

遇到Proceed ([y]/n)?输入y继续,等相关资源下载并安装配置完成后,再次查看当前存在的所有环境:

复制代码
1
2
3
4
5
6
C:Usershp>conda env list # conda environments: # base * C:Conda python_spatial C:Condaenvspython_spatial

可以看到与之前相比多了我们刚刚创建好的python_spatial环境,使用conda activate 环境名称来激活指定的环境:

复制代码
1
2
3
4
C:Usershp>conda activate python_spatial (python_spatial) C:Usershp>

可以发现这时命令行开头多了(python_spatial),这代表我们已经进入激活的python_spatial环境中。

接着我们就可以使用conda命令在当前环境中安装geopandas,按照官网的推荐方式从conda-forge对应的channel进行安装,执行conda install --channel conda-forge geopandas

遇到需要选择的地方一样地输入y,这里依赖包较多,需要等待较长时间,直到最后done出现表示安装成功。

在控制台中直接进入python,检查geopandas是否正确安装:

复制代码
1
2
3
4
5
6
7
(python_spatial) C:Usershp>python Python 3.7.7 (default, Mar 23 2020, 23:19:08) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import geopandas as gpd >>>

至此,我们已经完成了geopandas基础环境的搭建,接下来我们来配置使用jupyter

2.2 配置jupyter lab

类似condajupyter也分为jupyter notebookjupyter lab,两者核心功能都差不多。

jupyter lab拥有更多的拓展功能,并且界面和操作方式也更加炫酷方便,所以本文选择jupyter lab

在上一节中创建好的python_spatial环境下使用conda install jupyterlab安装基础部分。

安装结束之后,在python_spatial环境下可以通过执行jupyter lab来打开它,在此之前需要先为jupyter lab配置虚拟环境,否则只能识别到默认的base环境。

  • 安装ipykernel

    退出虚拟环境后执行conda install ipykernel

  • 为虚拟环境安装ipykernel

    执行conda install -n python_spatial ipykernel

  • 激活虚拟环境&将虚拟环境写入jupyter的kernel中

复制代码
1
2
3
4
5
6
7
8
C:Usershp>conda activate python_spatial (python_spatial) C:Usershp>python -m ipykernel install --user --name python_spatial --display-name "spatial" Installed kernelspec python_spatial in C:UsershpAppDataRoamingjupyterkernelspython_spatial (python_spatial) C:Usershp>

这时我们在jupyter lab中已经可以切换到python_spatial环境了。

接下来为了使用jupyter lab的插件拓展,需要安装nodejs

我们在python_spatial下执行conda install nodejs即可,完成安装之后根据自己对插件功能的需要可以分别安装不同的插件。

下面举几个常用的例子:

  • html交互部件插件

为了在jupyter lab中渲染一些html部件,譬如tqdm中的交互式进度条,在虚拟环境下执行下列命令:

复制代码
1
2
3
pip install ipywidgets jupyter labextension install @jupyter-widgets/jupyterlab-manager

完成后执行jupyter lab,在打开的操作界面中notebook下点击python_spatial创建新的notebook,执行如下命令(请提前安装好tqdm),可以看到出现了交互式的进度条:

图4
  • 目录插件

ipynb文件中可以用markdown编写各级别标题,在使用下列插件自动生成目录:

复制代码
1
2
jupyter labextension install @jupyterlab/toc
图5
  • matplotlib交互式绘图

使用matplotlib交互式绘图模式:

复制代码
1
2
3
pip install ipympl jupyter labextension install @jupyter-widgets/jupyterlab-manager jupyter-matplotlib

安装完成后就可以使用%matplotlib widget开启交互式绘图模式(请提前安装好geopandas绘图依赖包descartes):

图6

你也可以在侧边栏中发现更多的实用插件:

图7

2.3 虚拟环境的备份和恢复

conda提供了将虚拟环境导出为yaml文件的功能,使得我们可以保留好不容易创建好的虚拟环境中的配置信息,格式如conda env export > 导出路径文件名.yml

譬如我们导出前面创建好的python_spatial到所需路径下:

复制代码
1
2
3
4
(python_spatial) C:Usershp>conda env export > C:UsershpDesktoppython_spatial.yml (python_spatial) C:Usershp>

之后你可以在安装好conda服务的其他机器上按照conda env create -n 新环境名称 -f 路径文件名.yml

譬如我们就在本机上用已经导出的python_spatial.yml复制为新的虚拟环境,耐心等待之后conda会自动完成前面所有我们手动实现的步骤:

复制代码
1
2
conda env create -n new_python_spatial -f C:UsershpDesktoppython_spatial.yml

之后只需要像前文中一样执行python -m ipykernel install --user --name new_python_spatial --display-name "new spatial"从而为jupyter lab添加新的虚拟环境的kernel信息。

new_python_spatial环境下启动jupyter lab,这是我们可使用的环境变成了3个:

图8

2.4 虚拟环境的移除

使用conda remove -n 环境名称 --all来移除已经创建的环境。

譬如我们使用conda remove -n new_python_spatial -allnew_python_spatial移除之后,再次查看所有环境:

复制代码
1
2
3
4
5
6
C:Usershp>conda env list # conda environments: # base * C:Conda python_spatial C:Condaenvspython_spatial

但这时会存在一个恼人的地方,我们这里只是移除了虚拟环境,但前面注册到jupyter lab中的kernel还会显示。

但实际上是没有对应环境存在的,所以强行选择已经移除的环境对应的kernel会报错:

图9

控制台中使用jupyter kernelspec list查看信息:

复制代码
1
2
3
4
5
6
C:Usershp>jupyter kernelspec list Available kernels: new_python_spatial C:UsershpAppDataRoamingjupyterkernelsnew_python_spatial python_spatial C:UsershpAppDataRoamingjupyterkernelspython_spatial python3 C:Condasharejupyterkernelspython3

接着使用jupyter kernelspec remove kernel名称对其进行移除即可:

复制代码
1
2
3
4
5
6
C:Usershp>jupyter kernelspec remove new_python_spatial Kernel specs to remove: new_python_spatial C:UsershpAppDataRoamingjupyterkernelsnew_python_spatial Remove 1 kernel specs [y/N]: y [RemoveKernelSpec] Removed C:UsershpAppDataRoamingjupyterkernelsnew_python_spatial

之后在启动jupyter lab就会发现残余的kernel跟着消失了。

而如果想要修改某个kernel的显示名称,可以同样在对应的虚拟环境下使用jupyter kernelspec list查看每个kernel以及其对应的路径,前往路径下把kernel.jsondisplay_name键对应的值改成新名称即可。

以上就是本文的全部内容。

对应的yaml文件已上传至文章开头的Github仓库中,你可以直接基于它创建对应本文python_spatial的虚拟环境。

如有疑问之处可以留言或在Github仓库下创建issues向我提问。

参考资料

[1]

https://github.com/CNFeffery/DataScienceStudyNotes: https://github.com/CNFeffery/DataScienceStudyNotes

[2]

conda官网: https://docs.conda.io/en/latest/miniconda.html

[3]

清华大学镜像站-获取下载链接-应用软件-Conda: https://mirrors.tuna.tsinghua.edu.cn/

-END-

复制代码
1
2
3
4
5
6
7
往期精彩回顾 适合初学者入门人工智能的路线及资料下载机器学习在线手册深度学习在线手册AI基础下载(pdf更新到25集)本站qq群1003271085,加入微信群请回复“加群”获取一折本站知识星球优惠券,请回复“知识星球”喜欢文章,点个在看

最后

以上就是健忘大山最近收集整理的关于【入门基础】conda+jupyter玩转数据科学环境搭建1 简介的全部内容,更多相关【入门基础】conda+jupyter玩转数据科学环境搭建1内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部